编写C语言时踩到的坑
本文对笔者在学习C语言时遗忘的C语言与C++不同的用法特性进行说明。
变量
- 定义变量时必须初始化
- 定义变量必须在代码块的最前面,不能在for()的括号里定义
int i = 1
- 不能用变量初始化变量
数据类型
bool
C语言中没有bool值,不可以使用true / false
unsigned
不要在它减到0时继续往下减,否则会变成无穷大
char*
- 使用
strlen
直接与负数比较会出错,因为strlen
是无符号数
结构体
结构体中不能包含函数,不推荐在定义结构体后直接声明变量。
结构体作为数据类型,需要在前面加上struct
,比如
1 | struct Time devide(struct Time t1, struct Time t2){} |
循环
不允许在for
内定义变量
指针与引用
C语言中没有引用
动态开辟空间
空间大小不要写成指针大小!!!!
字符串指针
对函数内的字符串指针操作时,最好先创建一个新的字符串指针
1 | int strdelete(char *s1, char *s2){ |
报错汇总
是否忘记了向源中添加“#include “stdafx.h“”
对于每一个出错的.cpp文件,右键——》属性——》C/C++——》预编译头,选择不使用预编译头即可。