level 1
bounce911
楼主
有2个CCS5.5下开发的程序:
程序(1)是我在别人提供的例程基础上二次开发的
有一段代码出警告:
void DATA_pro(unsigned char *pBuf, ...)
{
double a
a = (double)((((long int)pBuf[7])<<32))/1e10}
……
}
“a = (double)((((long int)pBuf[7])<<32))/1e10}”这一句出警告:
#64-D shift count is too large
程序(2)是我将出警告的这句话代码单独拷出来做的测试程序,编译时却没有出警告。
请问:
(1)CCS下long int型长度应当是4个字节还是8个字节?
根据https://blog.csdn.net/yuyin86/article/details/7610636说的似乎应当是8个字节
但也有人说32位机器下long int是4个字节。
到底应当是多少?
(2)两个程序都是CCS5.5开发的。我的机器是32位的,运行环境也是CCS5.5。为什么同样的代码,同样的开发环境,在我的机器上编译时一个出警告一个不出警告?按理说运行环境相同,编译器应当是同一个,无论对错编译结果都应该一样。难道编译器是否还跟链接的库文件之类有关么?
2020年08月17日 04点08分
1
程序(1)是我在别人提供的例程基础上二次开发的
有一段代码出警告:
void DATA_pro(unsigned char *pBuf, ...)
{
double a
a = (double)((((long int)pBuf[7])<<32))/1e10}
……
}
“a = (double)((((long int)pBuf[7])<<32))/1e10}”这一句出警告:
#64-D shift count is too large
程序(2)是我将出警告的这句话代码单独拷出来做的测试程序,编译时却没有出警告。
请问:
(1)CCS下long int型长度应当是4个字节还是8个字节?
根据https://blog.csdn.net/yuyin86/article/details/7610636说的似乎应当是8个字节
但也有人说32位机器下long int是4个字节。
到底应当是多少?
(2)两个程序都是CCS5.5开发的。我的机器是32位的,运行环境也是CCS5.5。为什么同样的代码,同样的开发环境,在我的机器上编译时一个出警告一个不出警告?按理说运行环境相同,编译器应当是同一个,无论对错编译结果都应该一样。难道编译器是否还跟链接的库文件之类有关么?