编写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
2
3
int strdelete(char *s1, char *s2){
char *p1 = s1;
}

报错汇总

是否忘记了向源中添加“#include “stdafx.h“”

对于每一个出错的.cpp文件,右键——》属性——》C/C++——》预编译头,选择不使用预编译头即可。

This is a summary

Any content (support inline tags too).