错误一:
最近在编写一个多文件结构的程序,在linux下,通过makefile文件来进行gcc编译,确实感觉到了makfile的强大和其在多文件编译的优势,在进行多文件编译的时候遇到了一个问题:expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘<’ token 或者 before ‘{’ token
自己建立了两个源文件:main.c、mainfunction.c 和一个头文件:func_head.h 出现如下错误:
- cc -c -o main.o main.c
- main.c: In function 'function';
- main.c:15:error:expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
通过程序的不断查找和注释检查,才发现错误在头文件中的语句:
- void function(double *pp,double *p)
没有在上述的语句最后写“;”所以相当于再main.c文件中:“#include “funct_head.h”语句有问题不完整的。有时候也在include <stdio.h>这样的语句中由于“<”没有也造成同样的问题。
看来细心写代码更胜于快速写完再调试修改。
错误二:
sprintf()函数sprintf(s1; ; );
s1分配内存,细心,一定要!!!!!!!!!!!!!!!!
不然出现:
Segmentation fault
或者:*** glibc detected *** ./myconf: free(): invalid next size (fast): 0x09b04460 ***