本文参考【sizeof的32位和64位兼容问题 | 第七根弦的技术博客 (junzimu.com)】
在64位系统中,sizeof返回的size_t类型定义为long unsigned int。 在32位系统中,sizeof返回的size_t类型定义为unsigned int。 那如果程序需要在32和64位系统保持兼容性,不希望产生该warning,如何处理呢?
printf已经为该兼容性定义了新的格式字符z。
测试源代码:
#include <stdio.h> int main() { printf("sizeof int=%zu\n",sizeof(int)); }
再编译,32位和64位系统都不会有warning。
发表评论