C语言代码页 预处理 和宏 结构体 共用体 枚举 指针简绍
代码页:是字符集编码的别名,也有人称"内码表"。
一般用法system(‘chcp 代码页’)
437标准ANSI码 936 简体中文 932 日语
有些ANSI码在一些国家没用,所以有些ANSI码被替代为一些特殊的符号所以形成代码页。
预处理:程序设计领域中,预处理一般是指在程序源代码被翻译为目标代码的过程中,生成二进制代码之前的过程。
宏:
优点: 1、增加可持续性。 2、软件设计。
#define 表示宏定义 一般习惯用大写表示宏 小写表示函数。
一般用宏来取代数字结果和功能简单的函数。
Vc中项目=》test属性页中加 \p 在存储页中找后缀为 .1 的文件查看预编译
Int a #a 会将a变成“a”
## 链接符号,表示后面的是参数不是符号
宏定义只能在一行表示,换行需要在后面加 \
宏要写成函数需要给每个参数加(),整个函数都加()。
#include””优先本目录寻找文件
#include<>非当前目录寻找文件
宏定义和头文件的区别就是头文件是以文件为单位替换的
将宏定义放在头文件中叫条件编译。
宏的经典用法
#ifndef TEST_H
Void TEXT_printf(char* sz);
#define TEST _H
#endif //使头文件执行一次
//#pragma once 微软发明的使文件只执行一次
#define TEST_PRINTF //输出测试
#ifdef TEST_PRINTF
printf(" ");
#endif //如果测试全部代码就打开 不测试就使宏定义备注。方便一次测试所有的文件。
结构体
自定义数据类型
用法struct tapperson{ char name[10];int age 20;int sex;}
#pargma pack(数值)数值来设置对齐值
对齐可以使运行运行速度变快,传输数据不会变
共用体
Union 标识符
{
Char a;
Double b;
Int c;
}
共用体 在使用时 如果有多次赋值 那么其只保留最后一次赋值操作
特点 共用一段内存空间 根据类型不同而进行不同长度的赋值操作
其长度为 共用体成员最大长度的长度
共用体被称为语法糖 意为编译器作者为程序员提供的某种复杂操作变为简单(实际并没变)操作 一种语法
枚举体长度永远为一个int长度(int长度根据平台而定)
共用体长度为其成员最长长度的长度
枚举类型
枚举的作用就是取代宏
Enum colour{red,green,blue}
/不给值不给初始值自动赋值0,1,2
Enum 标识符
{
符号化常量1 = 10,
符号化常量2,
.....
符号化常量n,
}
此写法会从10开始
指针
主要用于软件设计 *point 简写*p
功能:控制内存
&p取地址
Int *p;
Int n1=1,n2=2;
P1=rand()%2?&n1:&n2;随机取地址
Printf(“p1=%p *p=%p\n”,p1,*p);
Type *ptr = ...
Int n = ....
ptr[n] = *(type*)(int)ptr + sizeof(type)*n
ptr +n = type*(const)ptr + sizeof(type)*n
指针加整形得到某类型的指针常量