GCC(ARM) warning: comparison is always true due to limited range of data type


char ch;

while((ch = getopt(argc,argv,"d:h"))!=EOF
    switch(ch{
    case 'h'
    ...

GCC X86    OK!

GCC Arm 警告如下

warning: comparison is always true due to limited range of data type

改为int ch即可


The C and C++ standards allows the character type char to be signed or unsigned, depending on the platform and compiler. Most systems, including x86 GNU/Linux and Microsoft Windows, use signed char, but those based on PowerPC and ARM processors typically use unsigned char.(29) This can lead to unexpected results when porting programs between platforms which have different defaults for the type of char.




版权声明:本文为u013122984原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。