#include <stdio.h>
#include <stdlib.h>
int main(int argc , char *argv[])
{
if(argc != 2)
{
printf("./a.out 100");
return 0;
}
long long int lli = 0;
int att_id = atoi(argv[1]);
lli = 1L << att_id;
printf("lli :%llx, %lld\n", lli, lli);
return 0;
}
其中的代码
lli = 1L << att_id;
如果lli = 1 << att_id; att_id的值大于32会产生越界,所以要加上L。
正确方式:
不加L: