为什么初始化变量在注释行后不可见?
Why initialized variable is not visible after comment line?
错误信息是:error: ‘basicInfo’ undeclared (first use in this function)
basicInfo->errorlog = malloc(VAL_SZ);
#include <stdio.h>
#include <stdlib.h> //malloc
#include <string.h> //strdup
#define VAL_SZ 64
typedef struct {
char* errorlog;
char* cache_size;
char* cache_replacment;
int timeout;
} basicInfo_t;
int main(int argc, char* argv[]) {
//-------------BASIC INFO SETUP-------------\
basicInfo_t* basicInfo = malloc(sizeof(basicInfo_t));
basicInfo->errorlog = malloc(VAL_SZ);
basicInfo->cache_size = malloc(VAL_SZ);
basicInfo->cache_replacment = malloc(VAL_SZ);
return 0;
}
在您的评论中,您在末尾使用了 \
//-------------BASIC INFO SETUP-------------\
告诉编译器将语句继续到下一行。
因此,行
basicInfo_t* basicInfo = malloc(sizeof(basicInfo_t));
实际上对编译器不可见(= 注释掉)。
删除 \
它应该可以工作。
你的评论格式太聪明了。反斜杠字符作为源代码行的最后一个字符使下一行成为延续——反斜杠和紧随其后的行终止符将被完全忽略。这发生在源代码处理的早期,在评论被识别之前。
因为前面的注释行以反斜杠结尾,您(打算)声明变量 basicInfo
的行实际上是注释的一部分。因此,确实没有该变量的实际声明。只需删除注释末尾的两个反斜杠,或者在注释后添加一个空行即可。
顺便说一句,我的编辑器中的语法突出显示说明了这一点。我不了解您的编辑器,但如果它的功能不一样,那么更有用的编辑器可能会对您有所帮助。
错误信息是:error: ‘basicInfo’ undeclared (first use in this function) basicInfo->errorlog = malloc(VAL_SZ);
#include <stdio.h>
#include <stdlib.h> //malloc
#include <string.h> //strdup
#define VAL_SZ 64
typedef struct {
char* errorlog;
char* cache_size;
char* cache_replacment;
int timeout;
} basicInfo_t;
int main(int argc, char* argv[]) {
//-------------BASIC INFO SETUP-------------\
basicInfo_t* basicInfo = malloc(sizeof(basicInfo_t));
basicInfo->errorlog = malloc(VAL_SZ);
basicInfo->cache_size = malloc(VAL_SZ);
basicInfo->cache_replacment = malloc(VAL_SZ);
return 0;
}
在您的评论中,您在末尾使用了 \
//-------------BASIC INFO SETUP-------------\
告诉编译器将语句继续到下一行。 因此,行
basicInfo_t* basicInfo = malloc(sizeof(basicInfo_t));
实际上对编译器不可见(= 注释掉)。
删除 \
它应该可以工作。
你的评论格式太聪明了。反斜杠字符作为源代码行的最后一个字符使下一行成为延续——反斜杠和紧随其后的行终止符将被完全忽略。这发生在源代码处理的早期,在评论被识别之前。
因为前面的注释行以反斜杠结尾,您(打算)声明变量 basicInfo
的行实际上是注释的一部分。因此,确实没有该变量的实际声明。只需删除注释末尾的两个反斜杠,或者在注释后添加一个空行即可。
顺便说一句,我的编辑器中的语法突出显示说明了这一点。我不了解您的编辑器,但如果它的功能不一样,那么更有用的编辑器可能会对您有所帮助。