gpt4 book ai didi

c++ - 用于定义数字的数字常量之前的预期 unqualified-id

转载 作者:IT老高 更新时间:2023-10-28 21:40:34 48 4
gpt4 key购买 nike

我是 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/

48 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com