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