"->"标记之前的预期初始值设定项
expected initializer before ‘->’ token
本文关键字:gt 更新时间:2023-10-16
我从 g++ 中得到了奇怪的错误。错误提示的过程在其他项目中编译本身非常好,但在这里不知何故没有。以下是 g++ 抱怨的内容:
g++ -c -Wall -pedantic clear_screen.cpp -lcurses -o .clear.o
clear_screen.cpp:6:6: error: expected initializer before ‘->’ token
make: *** [.clear.o] Error 1
相应的生成文件部分如下所示:
CC=g++
CFLAGS=-c -Wall -pedantic
COMP=$(CC) $(CFLAGS)
.clear.o : clear_screen.cpp
$(COMP) clear_screen.cpp -lcurses -o $@
有问题的文件由以下行组成:
#include <unistd.h>
#include <term.h>
void clear_screen() {
if ( !cur_term ) { // line 6 is here
int result;
setupterm( NULL, STDOUT_FILENO, &result );
if (result <= 0) return;
}
putp( tigetstr( "clear" ) );
}
我错在哪里?
clear_screen
在term.h
中定义为cur_term->type.Strings[5]
(至少在我的系统上),因此->
的问题。请参阅g++ -E
输出以了解预处理器的作用。因此,本质上您需要使用与clear_screen
不同的名称以避免冲突。
相关文章:
- 没有找到相关文章