|
|
1
3
医生:你让自己对虫子敞开心扉,而不是真的隐藏任何东西。 自c99以来,c没有隐式声明规则,甚至在它不是一个特性之前,我们建议使用它。它禁用对函数参数的静态类型检查,并使我们在多个方面对未定义的行为保持开放状态。 别用它!编译器警告只是为了不破坏旧的代码基,但它应该是一个错误。事实上 是 要求编译器提供最严格的一致性模式时出错。 除此之外,你没有真正隐藏任何东西。宏必须出现在头文件中,因此每个翻译单元都会注意到这个符号。你没有隐瞒这样的事情。更不用说符号必须有外部链接(或者程序也不会链接)。 所以,只要在宏之后或之前添加一个函数声明,以确保您的代码是正确的,即使是在这个千禧年的编译器编译的时候。
噢,文件范围内带有前导下划线的标识符被保留给实现(您的工具链)。也就是说,你不能有一个带有前导下划线的文件范围标识符,这样会有鼻部恶魔的危险。更名更佳
|
|
|
MaPo · Linux,设置锁定ICMP_过滤器选项 1 年前 |
|
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 1 年前 |
|
|
Bobby · 复合字面值总是左值吗? 1 年前 |
|
9-Pin · C: 嵌套结构的堆栈内存分配 1 年前 |