gpt4 book ai didi

c - 位字段变量命名约定和无效类型错误 gcc 4.2.1 freebsd 7

转载 作者:行者123 更新时间:2023-11-30 17:22:10 25 4
gpt4 key购买 nike

  1. 我正在将 php 从 5.3 迁移到 5.5。
  2. 我正在 freebsd 7 - gcc 4.2.1 中进行交叉编译
  3. 针对arm、i386和powerpc进行编译。

源文件未编译。以下是与真实代码类似的代码。

typedef struct _abc {
char *d;
size_t s;
size_t u;
uint f:1;
uint _arj:31;
}abc;

unit 和其他类型是使用 typedef 在顶部头文件中定义的。 我在第一条评论后添加了这一行

我收到错误:位字段“___arj”的类型无效

我将 _arj 重命名为 arj 并且它起作用了。但我必须在代码库中找到 _arj 并将其替换为 arj。

位字段中使用的变量有命名约定吗?

最佳答案

关于实现保留名称,以前导下划线开头的名称通常是一个坏主意。前导双下划线实际上是一种违规行为。以下是 glibc 手册的摘录:

In addition to the names documented in this manual, reserved names include all external identifiers (global functions and variables) that begin with an underscore (‘_’) and all identifiers regardless of use that begin with either two underscores or an underscore followed by a capital letter are reserved names. This is so that the library and header files can define functions, variables, and macros for internal purposes without risk of conflict with names in user programs.

还有一个指向我从中获得该页面的链接: http://www.gnu.org/software/libc/manual/html_node/Reserved-Names.html

关于c - 位字段变量命名约定和无效类型错误 gcc 4.2.1 freebsd 7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28070040/

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