C 基础 - 预处理命令和基本语法详解

cpp 复制代码
#include <stdio.h> //预处理指令

int main()   //函数
{
	printf("Hello, World!"); //输出语句
	return 0; //返回语句 
}

目录

一.预处理指令

[1.#define #ifdef #ifndef #if #else #elif #endif](#define #ifdef #ifndef #if #else #elif #endif)

2.#inlcude

a.新增一个文件

b.#include

c.运行结果

d.扩展

[e.<> 和 "" 的区别](#e.<> 和 "" 的区别)

二.基本语法

一定要注意,编程时请选择正确的输入法,严格区分中英文;

1.语句由分号结束

2.部分语句例子(这里面代表的含义,后面会有详解)

3.注释

4.标识符

5.关键字


一.预处理指令

指令 描述
#define 定义宏
#include 包含一个源代码文件
#undef 取消已定义的宏
#ifdef 如果宏已经定义,则返回真
#ifndef 如果宏没有定义,则返回真
#if 如果给定条件为真,则编译下面代码
#else #if 的替代方案
#elif 如果前面的 #if 给定条件不为真,当前条件为真,则编译下面代码
#endif 结束一个 #if......#else 条件编译块
#error 当遇到标准错误时,输出错误消息
#pragma 使用标准化方法,向编译器发布特殊的命令到编译器中

例子

1.#define #ifdef #ifndef #if #else #elif #endif

运行结果,而且在vs里面可以看的,条件没达成,不允许的语句变灰了.

代码

cpp 复制代码
#include <stdio.h> //预处理指令
#define PI 3   //定义宏

int main()   //函数
{
	printf("PI = %d \n",PI); //输出为  PI=3

#ifdef  PI   //如果宏PI以定义则条件为真
	printf("true \n"); //输出为 true
#endif //  PI

#ifndef  PI   //如果宏PI没定义则条件为真
	printf("false \n"); //输出为 false
#endif //  PI

#if PI == 1     
	printf("PI == 1 \n ");
#elif PI == 2 
	printf("PI == 2 \n ");
#else
	printf("PI == 3  \n");
#endif
	return 0; //返回语句 
}

2.#inlcude

当预处理器发现#include 指令时,会查看后面的文件名并把文件的内容包含到当前文件中.

例子

a.新增一个文件

b.#include

c.运行结果

d.扩展

#include "DefinePI.cpp" 就是把 DefinePI.cpp里的内容 复制到这里.替换掉 #include "DefinePI.cpp"

e.<> 和 "" 的区别

尖括号告诉预处理器在系统类库目录中查找该文件。

按住Ctrl,鼠标左键点击 stdio.h,即可跳转.后续的函数,变量定义也可用此方式跳转

双引号是从当前路径开始查找,

比如:

在同一个文件夹下,就可以直接 #include "DefinePI.cpp"

不在同一个文件夹内,就要添加路径 我们新建一个文件夹,

添加上路径.

二.基本语法

一定要注意,编程时请选择正确的输入法,严格区分中英文;

1.语句由分号结束

cpp 复制代码
printf("Hello, World! \n");
return 0;

2.部分语句例子(这里面代表的含义,后面会有详解)

cpp 复制代码
	int a;

	int a1 = 1;

	bool b = true;
	char c = 1.0f;

3.注释

注释是给人看的,编译器遇到的时候会直接跳过.

cpp 复制代码
#include <stdio.h>
int main()   
{
	//这是单行注释

	/*
	这是多
	行注释	
	*/

	return 0; 
}

4.标识符

就是上面距离代码中 , int a1 = 1; a1就是标识符,用来方便区分,和后面的使用.

还可以用来标识(一下只做了解)

  • 函数名 ( 比如前面使用到的 int main() main 就是函数名)
  • 结构体
  • 指针
  • 数组
  • 自定义的项目名称等等

规则是

允许:

一个标识符以字母 A-Z 或 a-z 或下划线 _ 开始,后跟零个或多个字母、下划线和数字(0-9)

如: name , School_Name


不允许:

出现标点字符


对大小写敏感,区分大小写,

如: School_Name ,school_name ,school_Name 是三个不同的标识符

5.关键字

是C语言保留的一些有特殊作用词语,不可以用来做标识符;

详解

关键字 描述
auto 声明自动变量
double 声明双精度变量或函数
typedef 用以给数据类型取别名
register 声明寄存器变量
short 声明短整型变量或函数
char 声明字符型变量或函数
const 声明只读变量
static 声明静态变量int声明整型变量或函数
struct 声明结构体变量或函数
unsigned 声明无符号类型变量或函数
volatile 说明变量在程序执行中可被隐含地改变long声明长整型变量或函数
union 声明共用数据类型
signed 声明有符号类型变量或函数
void 声明函数无返回值或无参数,声明无类型指针float声明浮点型变量或函数
enum 声明枚举类型
extern 声明变量是在其他文件正声明
if 条件语句
else 条件语句否定分支(与 if 连用)
switch 用于开关语句
case 开关语句分支
for 一种循环语句do循环语句的循环体
while 循环语句的循环条件
goto 无条件跳转语句
continue 结束当前循环,开始下一轮循环break跳出当前循环
default 开关语句中的"其他"分支
sizeof 计算数据类型长度
return 子程序返回语句(可以带参数,也可不带参数)循环条件
相关推荐
Myli_ing7 分钟前
考研倒计时-配色+1
前端·javascript·考研
色空大师9 分钟前
23种设计模式
java·开发语言·设计模式
余道各努力,千里自同风10 分钟前
前端 vue 如何区分开发环境
前端·javascript·vue.js
闲人一枚(学习中)10 分钟前
设计模式-创建型-建造者模式
java·设计模式·建造者模式
软件小伟19 分钟前
Vue3+element-plus 实现中英文切换(Vue-i18n组件的使用)
前端·javascript·vue.js
2202_7544215428 分钟前
生成MPSOC以及ZYNQ的启动文件BOOT.BIN的小软件
java·linux·开发语言
蓝染-惣右介30 分钟前
【MyBatisPlus·最新教程】包含多个改造案例,常用注解、条件构造器、代码生成、静态工具、类型处理器、分页插件、自动填充字段
java·数据库·tomcat·mybatis
小林想被监督学习31 分钟前
idea怎么打开两个窗口,运行两个项目
java·ide·intellij-idea
HoneyMoose33 分钟前
IDEA 2024.3 版本更新主要功能介绍
java·ide·intellij-idea
我只会发热35 分钟前
Java SE 与 Java EE:基础与进阶的探索之旅
java·开发语言·java-ee