C语言
zzxuan3443
小白一个,期待变色中
展开
-
移位与乘除关系
转载 2016-11-07 20:50:10 · 424 阅读 · 0 评论 -
更新顺序文件
如果要同时进行输入和输出操作,必须在其中插入fseek函数调用 FILE *fp; fp = fopen(file,"r"); struct record rec; while(fread((char *)&rec,sizeof(rec),1,fp) == 1) { fseek(fp,-(long)sizeof(rec),1); fwrite((char *)&rec,sizeof(rec)转载 2016-11-03 16:01:50 · 416 阅读 · 0 评论 -
词法陷阱
词法陷阱原创 2016-10-29 18:43:12 · 242 阅读 · 0 评论 -
非数组的指针
char *r; strcpy(r,s); strcat(r,t); 以上是错误的 1、r指向不明。2、r所指向的地址还应该有内存空间可容纳字符串 char r[100]; strcpy(r,s); strcat(r,t); 以上可能错误: r的空间固定,如果r和s两个字符串长度够大,r存储不下会有错 char *r,*malloc(); r = malooc原创 2016-11-02 10:33:06 · 263 阅读 · 0 评论 -
边界不对称性
对上面怎么理解呢? i 和 a[10] 都是局部变量,存储在栈区,如果 i 的地址在前 a[10] 的地址在后,那么上面的代码编译通过运行时报栈溢出; 如果先分配 a[10] 的空间再分配 i 的空间,则出现以上解释的陷入死循环现象,因为此时 a[10] 是元素 a[9] 的下一个地址,而这个地址里存储的就是 i 。 在Ubuntu16下测试不管是int a[10],i;还是I原创 2016-11-02 11:37:27 · 306 阅读 · 0 评论 -
initializer element is not constant
一般出现这种报错原因在于: 全局变量c的值不能在编译时确定,要在执行时确定 #include int a = 1; int b = 1; int c = a+b;问题出在int c=a+b;这是不可以的。 还有另一种情况报错,就是回调函数的使用,wakeup()是回调函数。 错误:registerEventCallback ( wakeup()); 正确:register原创 2017-11-09 16:51:38 · 283 阅读 · 0 评论 -
multiple definition of XXX
想把全局变量放在某头文件内,这样所有用到该变量的源文件只需要include该头文件就可以了 然而头文件里所有的变量都报错multiple definition of XXX 虽然有宏 #ifndef PROCESS_DATA_H_ #define PROCESS_DATA_H_但是不同的C文件在编译的时候是相互独立的,并不会检查其他C文件里是否已经 #define PROCESS_DA原创 2017-11-06 18:39:11 · 1123 阅读 · 0 评论 -
expected '=', ',', ';', 'asm' or '__attribute__' before xxx
多种情况汇报这种错误,例如代码中有中文之类的, 但是如果C文件里有bool,那么也会报这个错误,因为C++里有bool型,而C里面是没有的!!! 如果想用bool需要自定义,false和true也是如此 #ifndef bool #define bool int #endif #ifndef FALSE #define FALSE 0 #endif #ifndef TRUE #defi原创 2017-11-06 18:30:46 · 6299 阅读 · 0 评论