gpt4 book ai didi

c - 警告 : missing braces around initializer [-Wmissing-braces] (IN MACRO)

转载 作者:太空宇宙 更新时间:2023-11-04 07:45:08 28 4
gpt4 key购买 nike

我正在尝试使用宏以默认值初始化结构元素。不幸的是,我不断收到警告,但我无法找到其解决方案,任何人都可以帮助我了解我到底做错了什么吗?

注意:

  1. 我在初始化时收到警告。
  2. 我已经尝试了这两个宏,但仍然无法解决
  3. 在基于 Linux 的操作系统上使用 GCC 编译器编译代码。
/******MACROS DEFINITION******/ /*headers.h*/

#define _dfLOAD_DEFAULT_FILE01 (stProcessFile_ALL){ .filePTR1=-1 , .fileBuff1="\0" , .fileName1 = "temp1.txt"}

//#define _dfLOAD_DEFAULT_FILE01 (stProcessFile_ALL){ .filePTR1=-1 , .fileBuff1={"\0"} , .fileName1 = {"temp1.txt"}}


/******STRUCTURE DEFINITION******/ /*headers.h*/
typedef struct
{

FILE filePTR1;
FILE filePTR2;
FILE filePTR3;

char fileBuff1[500];
char fileBuff2[500];
char fileBuff3[500];

char *fileName1;
char *fileName2;
char *fileName3;

}stProcessFile_ALL;


/******STRUCTURE INIT******/

void FnLaodDeFaultValue (uint8_t ucStrSelec)
{

stProcessFile_ALL stVarProcessFile_ALL;
stVarProcessFile_ALL = _dfLOAD_DEFAULT_FILE01 ;

}

编译器:

gcc -Wall -o "Main" "Main.c" "process.c" "-lwiringPi" "-pthread"  (in directory: /home/pi/Desktop/CombinerCARD)

In file included from process.c:16:

process.c: In function ‘FnLaodDeFaultValue’:

headers.h:65:34: warning: missing braces around initializer [-Wmissing-braces]

#define _dfLOAD_DEFAULT_FILE01 (stProcessFile_ALL){ .filePTR1=-1 , .fileBuff1="\0" , .fileName1 = "temp1.txt"}

process.c:184:26: note: in expansion of macro ‘_dfLOAD_DEFAULT_FILE01’
stVarProcessFile_ALL = _dfLOAD_DEFAULT_FILE01 ;

最佳答案

真正的问题是这部分:

.filePTR1=-1

filePTR1 声明为

FILE filePTR1;

FILE 是结构类型,因此它试图在没有 { } 的情况下初始化结构。这就是警告的内容。

你可能打算使用

FILE *filePTR1;

相反,使 filePTR1 成为指针。

但请注意 -1 也不是有效的指针值。

关于c - 警告 : missing braces around initializer [-Wmissing-braces] (IN MACRO),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57783111/

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