我是 C++ 新手,所以我不知道在 phidget-code 示例中这个错误是什么意思:
Main.cpp:8:16: error: expected unqualified-id before numeric constant
//verander de volgende informatie naar de informatie voor jouw database
#define dserver "oege.ie.hva.nl"
#define duser "username"
#define dpassword "password"
#define ddatabase "databasename"
#define homeid 1234 //line 8
是否存在语法错误?或者是其他东西?我使用 #define 而不是 int。
编辑:添加完整的错误日志..
complete error-log: http://pastebin.com/3vtbzmXD
Full main.cpp code: http://pastebin.com/SDTz8vni
最佳答案
完整的错误是
error: expected unqualified-id before numeric constant
note: in expansion of macro ‘homeid’
string homeid;
^
您正试图声明一个与宏同名的变量,但这无法完成。预处理器已经踩过程序,将其转换为 string 1234;
,这不是一个有效的声明。预处理器不知道程序结构,宏不遵循语言的范围规则。
尽可能使用常量和内联函数等语言特性,而不是宏。在这种情况下,您可以使用
const int homeid = 1234;
这将被限定在全局命名空间中,并且可以在更窄的范围内被同名的东西安全地隐藏。即使在隐藏时,它也始终以 ::homeid
的形式提供。
当你真的需要一个宏时,遵循使用 SHOUTY_CAPS
宏的约定是明智的。除了提请注意与使用宏相关的潜在危险和怪异之外,它不会与使用其他大写字母的任何名称发生冲突。
关于c++ - 用于定义数字的数字常量之前的预期 unqualified-id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27524755/