【发布时间】:2017-07-27 11:06:27
【问题描述】:
我正在使用nullptr,因为它很方便并且使我的代码更具可读性。但是编译器在下面给了我错误。
我的问题是必须包含什么头文件才能解决问题。
这里有一段代码:
FILE *fptr;
fptr=fopen("E:\\text.txt","w");
if(fptr==nullptr)
{
perror("open()");
return EXIT_FAILURE;
}
错误
||=== Build: Debug in 1 (compiler: GNU GCC Compiler) ===|
E:\COOP\1\main.c||In function 'main':|
E:\COOP\1\main.c|12|error: 'nullptr' undeclared (first use in this function)|
E:\COOP\1\main.c|12|note: each undeclared identifier is reported only once for each function it appears in|
E:\COOP\1\main.c|27|error: expected declaration specifiers or '...' before
【问题讨论】:
-
C 没有
nullptr关键字或别名。它仅存在于 C++ 中。 -
@Ceeker:你的 IDE 在将 C++ 语言引入 C 代码时很顽皮。
-
那么似乎 CodeBlocks 中存在一个错误,因为它不区分 C 和 C++ 源。如果您键入
ne,IDE 是否会尝试将其替换为new(另一个仅限 C++ 的关键字)?如果是这样,那么问题可能是一般性的,而不仅仅是一个或几个关键字。 -
别再舒服了!您如何对具有自动完成功能的 IDE 感到满意,该功能可以自动完成来自错误语言的标识符和关键字。接下来是什么?
mysql_real_escape_string?? -
我会去their ticket system 并将其报告为错误。他们确实需要将 C 和 C++ 分开。