if (i==15)
{
(f/(10(^)13)) ==34 || (f/(10(^)13)) ==37;
printf("AMEX \n");
}
我在这里找不到什么问题。我得到“类型名称需要说明符或限定符”和“预期表达式”的错误 ==的优先级大于^但是我把^放在括号之间,所以它应该先执行。
答案 0 :(得分:0)
他们的代码存在几个问题:
无法编写第一个10(^)13
,您应该写10^13
^
运算符是按位xor。
因此10^13
将被评估为7
(1010b xor 1101b -> 0111b
),这不是您想要的。
您忘记了测试中的if
(如果您在添加;
时未删除if
,则f
将导致您遇到麻烦。
因此,如果#define CARD_TYPE_POSITION 10000000000000
if (i==15)
{
if (((f/CARD_TYPE_POSITION) == 34) || ((f/CARD_TYPE_POSITION) == 37))
printf("AMEX \n");
}
是64位整数,则所需的正确语法是:
#define CARD_TYPE_POSITION 10000000000000
if (i==15)
{
int card_type = f / CARD_TYPE_POSITION;
if ((card_type == 34) || (card_type == 37))
printf("AMEX \n");
}
您还可以计算一次卡片类型:
jcmd PID GC.run