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

#include <stdio.h> //预处理指令

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

目录

一.预处理指令

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

2.#inlcude

a.新增一个文件

b.#include

c.运行结果

d.扩展

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里面可以看的,条件没达成,不允许的语句变灰了.

代码

#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.语句由分号结束

printf("Hello, World! \n");
return 0;

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

	int a;

	int a1 = 1;

	bool b = true;
	char c = 1.0f;

3.注释

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

#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 子程序返回语句(可以带参数,也可不带参数)循环条件

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-06-06 05:10:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-06 05:10:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-06 05:10:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-06 05:10:02       18 阅读

热门阅读

  1. 2024.6.05总结1102

    2024-06-06 05:10:02       10 阅读
  2. 文档智能开源软件

    2024-06-06 05:10:02       7 阅读
  3. 常用设计模式

    2024-06-06 05:10:02       7 阅读
  4. 层出不穷的大模型产品,你怎么选?【模板】

    2024-06-06 05:10:02       12 阅读
  5. HarmonyOs开发:关系型数据库封装之增删改查

    2024-06-06 05:10:02       8 阅读
  6. Vue基础(3)监听数据

    2024-06-06 05:10:02       8 阅读