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)
[e.<> 和 "" 的区别](#e.<> 和 "" 的区别)
一.预处理指令
指令 | 描述 |
---|---|
#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 | 子程序返回语句(可以带参数,也可不带参数)循环条件 |