当我以下面的形式初始化结构时,我收到错误
chmod 755 /etc/mysql/mysql.conf.d
我收到错误
static struct A* a = &apple->queue[queue_number];
static struct B* b = &banana->queue_a[queue_number];
我想将指针a和b保持为静态,以便它的范围保留在同一个文件中。 请帮忙
答案 0 :(得分:1)
因为static
属于constants
类型,应使用&apple->queue[queue_number]
初始化,或者使用编译时已知的变量值(在您的情况下为a
)进行初始化时间不在运行时。
从C标准
具有静态的对象的初始值设定项中的所有表达式 或线程存储持续时间应为常量表达式或字符串 文字。
我想将指针a和b保持为静态?一种方法是使用NULL
初始化static struct A *a = NULL;
if(a == NULL) { /* point to remember when a become NULL it initialize again a */
a = &apple->queue[queue_number]; /*initialize expected value here */
}
&测试它。
mergeParts(lowerIndex, middle, higherIndex);
您可能想阅读此Error "initializer element is not constant" when trying to initialize variable with const