我已经有一段时间没有写过 C 语言了,我正在使用 MySQL C API 编写一个应用程序,在 redhat 上用 g++ 编译。
所以我开始用 printfs 输出一些字段......使用我曾经使用过的(在 suse 上,几年前)使用 oracle api 和 PRO*C,我可以选择一个 int 并将其输出为:
int some_int; printf("%i",some_int);
我尝试使用 mysql ints 来执行此操作,但显示了 8 个随机数......我认为这是一个 mysql api 问题和我的服务器的一些配置问题,我浪费了几个小时试图修复它,但不能,并发现我可以这样做:
int some_int; printf("%s",some_int);
它会正确打印出整数。因为我没有对我提取的值进行计算,所以我认为这是一个不错的解决方案。
直到我试图计算一些东西......
我做了一个简单的:
整数行数; 对于([stmt]){ 行数++; } printf("%i",rowcount);
我又得到了一个 8 位随机数……我不知道这台机器上的整数是怎么回事。
然后我意识到,如果我将 int 初始化为零,那么我会得到一个正确的数字。
有人可以向我解释一下在什么条件下需要将 int 变量初始化为零?我不记得每次在我的旧代码库中都这样做,而且我在示例中没有看到它,我正在建模我的 mysql_stmt 代码......
有什么我想念的吗?另外,我完全有可能忘记了每次都是必需的
谢谢...