Tag: 编译器错误

C – 在’=’之前的预期表达式…在没有’=’的行上

我疯狂地试图弄清楚这个与现实/我的代码没有明显联系的错误信息。 我一直在这里搜索并得出一个结论:你会讨厌被typedef隐藏的指针。 对不起,这是我无法控制的 – 教授提供了这样的代码。 我正在编辑问题中指定的代码。 我正在弹出整个节点以避免每个推送function上的malloc调用并将它们存储在辅助堆栈中。 MakeEmptyS函数使用INITIAL_SIZE节点初始化Stack。 GrowEmptyS向空节点堆栈添加更多节点 stack.c具有以下function: void MakeEmptyS( Stack S ) { PtrToNode tmp; if ( S == NULL ) Error( “Must use CreateStack first” ); else { GrowEmptyS( S, INITIAL_SIZE); while (!IsEmptyS( S) ) { tmp = TopopNode( S ); PushEmpty( S, tmp); } } } 我收到此错误:“Stack.c:53:22:错误:’=’标记之前的预期表达式”,其中第53行是GrowEmptyS(S,INITIAL_SIZE); 作为参考,这里是Grow函数: void GrowEmptyS( […]

C:如何确定外部数组的sizeof(array)/ sizeof(struct)?

定义类型x和该类型的数组X XH: typedef struct _x {int p, q, r;} x; extern x X[]; 单独的文件保持巨大的鸣喇叭数组X XC: #include “xh” x X[] = {/* lotsa stuff */}; 现在我想使用X : main.c中: #include “xh” int main() { int i; for (i = 0; i < sizeof(X)/sizeof(x); i++) /* error here */ invert(X[i]); return 0; } main.c不会编译; 错误是: error: invalid application […]

发文件问题?

为什么当我使用我的makefile编译我的程序时,我获得了: gcc -Wall -pedantic src/main.c -o _wk/main.o src/main.c:9:11: warning: C++ style comments are not allowed in ISO C90 src/main.c:9:11: warning: (this will be reported only once per input file) src/main.c: In function ‘initialiseStructItimerval’: src/main.c:46: warning: format ‘%d’ expects type ‘int’, but argument 2 has type ‘__suseconds_t’ src/main.c: In function ‘stockeRetard’: src/main.c:71: warning: ISO C90 forbids […]

我一直收到一个collect2:错误:ld返回1退出状态

我有一点问题。 每次我尝试编译程序时,我都会收到“collect2:错误:ld返回1退出状态”。 我搜索了这个,查看了示例,并发现它通常发生在未正确使用头文件时; 但是,我没有在我的代码中使用头文件,所以我不确定为什么这样做。 我认为这对于那些得到此错误并且不理解原因的人会有所帮助。 我知道我的代码中存在很多错误,但我试图找到可以编译它的地方并解决所有问题。 谢谢一堆! #include #include struct node_t { double x; struct node_t *next; }; struct node_t *create_node(double n); void print_node (struct node_t * node ); void print_list (struct node_t * head ); struct node_t * insert_head (struct node_t *head , struct node_t * node ); struct node_t * insert_tail (struct node_t […]

C – 取消引用指向不完整类型的指针

我已经阅读了关于同一错误的5个不同的问题,但我仍然无法找到我的代码有什么问题。 main.c中 int main(int argc, char** argv) { //graph_t * g = graph_create(128); //I commented this line out to make sure graph_create was not causing this. graph_t * g; g->cap; //This line gives that error. return 1; } 。C struct graph { int cap; int size; }; 。H typedef struct graph graph_t; 谢谢!

XC8错误224:非法#指令(第一行)

我正在使用Microchip的XC8编译器。 他们希望我#include 而不是包含特定于芯片的标头。 但是,当我在代码的第一行添加此代码时,我收到错误: Error [224] C:\…\main.c; 1.4 illegal “#” directive 当我在指令之前放置换行符时,我没有收到错误。 为什么是这样? 我的完整代码: #include #pragma config OSC =INTIO67, WDT = OFF, LVP = OFF, PBADEN = OFF void main() { while (1); } 使用换行符,代码看起来一样,但顶部有一个空行。

为什么在C ++中不允许初始化整数成员变量(不是const static)?

当我尝试在类定义中初始化int成员变量时,我的C ++编译器会抱怨。 它告诉“只能在类中初始化静态const积分数据成员”。 能否请您解释这一限制背后的基本原理(如果可能,请举例说明)。

#import仍会出现“重复符号”错误

当我编译我的iPhone应用程序时,xCode为MyConstants.h中的变量提供了“重复符号”错误 我想如果我用过: #import “MyConstants.h” 它会避免这种情况吗? 但我仍然有问题。 补充信息: 在“链接”期间发生错误。 (我只是使用xCode的“Build and Go”按钮。) 我也尝试了(不需要#import)#ifndef / def方法。 也许我应该问这个: 如果您需要在所有源代码文件的每个部分中访问常量…您将在.h文件中放置什么? 您将使用什么将该常量包含在代码的其他部分中。 我想(但我猜它不是)它很简单: MyConstants.h> int thisIsGlobal = 123; (不管我在哪里,我都会在任何代码中的任何地方重新定义thisIsGlobal。) 然后在我的其他每个源文件的顶部只添加“#import MyConstants.h”。

scanf()中的反转参数

我(很快)编写了一些代码并意外地反转了scanf()的参数: char i[] = “ABC1\t”; scanf(i, “%s”); 使用gcc -Werror -Wall -Wextra编译并没有抱怨这一点。 显然,这段代码不起作用,但为什么没有gcc告诉我,我颠倒了参数? 它不能检测到i不是格式字符串,或者第二个参数不是可存储类型吗? 编辑 感谢所有的洞察力,看起来我找到了答案, -Wformat标志上有一个扭曲使得这个“可捕获”(在下面发布以供参考)

为什么没有编译器错误的main()没有返回结束?

我正在研究C-brain预告片:编写标准的Hello-World程序,没有分号。 到目前为止我的最佳答案是: int main(void) { if (printf(“Hello World!\n”), exit(0), 0) { /* do nothing */ } } 但我不明白为什么我没有得到编译器错误(Visual Studio): error C4716: ‘main’ : must return a value 我已尝试使用声明的返回类型的其他函数,但缺少return语句,并得到此编译器错误。 请注意,我也尝试过: int foo(void) { if (printf(“Hello World!\n”), exit(0), true) { /* do nothing */ } } int main(void) { foo(); } 并且不要在foo上得到编译器错误。 如果我删除“exit(0)”,我确实得到了编译器错误。 显然编译器知道“退出”是一个特殊function? 这对我来说似乎很奇怪。