最近在开发一个需求的时候,把老代码中打印日志的代码拷贝直接拷贝过来。开发完成后测试人员说逻辑是正常的但是日志有些奇怪。
一、C/C++中的打印问题
出现错误逻辑代码如下:
1、数值类型不匹配
snprintf(szRemark, sizeof(szRemark) - 1, "资金账户:%d", llCuacctCode);
其中llCuacctCode是long long类型,输入了1989061819891,结果却打印了491961843。从结果来看。是因为输入的值溢出了导致结果异常。统一的如果long long类型的数值输入一个很小的值,也可能会打印出一个不一样的结果。
2、要打印字符串,输入数值会导致程序code
比如:
int i = 100;
printf("i is %s\n", i);
这段代码可能导致程序code