在 c++ 中使用 sqlite 的 void 函数中的"返回"问题
Problems with 'return' in void function with sqlite in c++
我刚刚开始学习如何在c++中使用sqlite。我对以下函数进行了编码。现在我想将值返回到我的主函数,但它不起作用,我也不知道为什么。
当我取出时
return value;
一切都很有魅力。它打印出我想要的数字,但当我输入时,编译器告诉我:
main2.cpp: In Funktion »void query(sqlite3*, const char*, int)«:
main2.cpp:58:12: Fehler: Return-Anweisung mit Wert in »void« zurückgebender Funktion [-fpermissive]
翻译过来就是
main2.cpp:58:12: Error: Return-Instruction with value in »void« returned function [-fpermissive]
有人有主意吗?
void query(sqlite3* db, const char* sql, int id)
{
int rc;
sqlite3_stmt *stmt;
rc = sqlite3_prepare_v2(db, sql, -1, &stmt, NULL);
if (rc != SQLITE_OK)
{
fprintf(stderr, "Can not prepare: %sn", sqlite3_errmsg(db));
sqlite3_finalize(stmt);
exit(0);
}
rc = sqlite3_bind_int(stmt, 1, id);
if (rc != SQLITE_OK)
{
fprintf(stderr, "Can not bind: %sn", sqlite3_errmsg(db));
sqlite3_finalize(stmt);
exit(0);
}
rc = sqlite3_step(stmt);
if (rc != SQLITE_ROW && rc != SQLITE_DONE)
{
fprintf(stderr, "Can not step: %sn", sqlite3_errmsg(db));
sqlite3_finalize(stmt);
exit(0);
}
if (rc == SQLITE_BUSY)
{
fprintf(stderr, "Can not step (busy): %sn", sqlite3_errmsg(db));
sqlite3_finalize(stmt);
exit(0);
}
if (rc == SQLITE_LOCKED)
{
fprintf(stderr, "Can not step (locked): %sn", sqlite3_errmsg(db));
sqlite3_finalize(stmt);
exit(0);
}
if (rc == SQLITE_DONE)
{
sqlite3_finalize(stmt);
printf("not found");
}
// save data
int value = sqlite3_column_int(stmt, 0);
return value;
printf("%in", value);
sqlite3_finalize(stmt);
}
非常感谢!~ AMK
您的函数被定义为具有void
返回类型。。。这意味着你只能返回虚空。
如果需要返回值,则需要更改函数的返回类型(可能为int
)。
无论你做什么,都要意识到,在return
之后,它当前所在的任何语句都绝对不会被执行。
main2.cpp:58:12: Error: Return-Instruction with value in »void« returned function [-fpermissive]
用更清晰的英语(因为这显然不够清晰):
您的函数被指定为返回的void
。你试图从中返回一些东西,这是一个错误。
什么是不理解的?
相关文章:
- 从函数返回const char*数组
- 检查函数返回类型是否与STL容器类型值相同
- 从 c 或 cpp 系列子函数返回到主函数
- 从函数返回任意简单类型的数据
- 警告:在函数返回类型 [-Wignore 限定符] 时忽略类型限定符
- 从 C++ 中的函数返回数组地址问题
- VirtDisk.h QueryChangesVirtualDisk() 函数返回 RangeCount 为 0
- 为什么glGetSubroutineIndex为不同的函数返回相同的值?
- 在 c++ 中将函数返回类型指定为模板参数
- 从封装在对象中的函数 C++ 返回时为空的列表
- 为什么向量内部的指针在从函数返回时会发生变化?
- 函数返回的 rvalue 引用(表达式)是 xvalue - 但没有标识?
- 程序中的布尔函数返回输入的范围无论如何都是无效的
- 寿命延长从函数返回引用
- 程序不向函数返回值
- 字符串函数返回奇怪的值
- 类的大问题,以及从空函数c++返回
- 为什么在尝试测量函数返回所需的时间时,我的运行时编号是错误的?
- C++二叉搜索树模板从函数返回节点
- NVCC 错误:string_view.h:constexpr 函数返回是非常量