报错代码:
int main() {
printf("%d\n", sizeof(char));
return 0;
}
报错原因:
占位符 %d 在格式化输入输出中代表int(4bytes),%ld代表long int(>=4bytes), %lld代表long long int (8bytes);
sizeof,它返回的是一个64位 (8bytes)的无符号整型,所以占位符应该是%lld
解决办法:
- 在代码顶部加入: #define _CRT_SECURE_NO_WARNINGS
#define _CRT_SECURE_NO_WARNINGS
- 使用%lld 代替 %d,不建议,除了VS编译器以外其他的编辑器可能无法识别,缺少跨平台性和可移植性。
int main() {
printf("%lld\n", sizeof(char));
return 0;
}