• 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{redgreenblue}

    /不给值不给初始值自动赋值0,12

    Enum 标识符

    {

    符号化常量1 = 10,

    符号化常量2,

    .....

    符号化常量n,

    }

    此写法会从10开始

    指针

    主要用于软件设计 *point  简写*p

    功能:控制内存

    &p取地址

    Int *p

    Int n1=1n2=2

    P1=rand()%2&n1&n2;随机取地址

    Printf(“p1=%p  *p=%p ,p1,*p;

    Type *ptr = ...

    Int n = ....

    ptr[n] = *(type*)(int)ptr + sizeof(type)*n

    ptr +n = type*(const)ptr + sizeof(type)*n

    指针加整形得到某类型的指针常量

    学如逆水行舟,不进则退。 博客园技术交流群 群 号:1073255314 (本群没人,刚刚建立 -_-!!! )
  • 相关阅读:
    tpot从elastic search拉攻击数据之三 用于拉取的java程序
    tpot从elastic search拉攻击数据之二 配置端口映射
    wireshark使用
    VS c++ opencv画图
    java maven项目打包
    从es中拉取全部数据/大量数据 使用scroll+scan避免深分页
    java配置文件properties,yml,一般文件
    解决:JQuery "Uncaught ReferenceError: $ is not defined"错误
    java 字符串解析为json 使用org.json包的JSONObject+JSONArray
    easyui最简单的左右布局实现,及tab的右键菜单实现
  • 原文地址:https://www.cnblogs.com/Mj-NaijAm/p/13600794.html
Copyright © 2020-2023  润新知