• C语言学习概述10/17


     计算机系统的基本架构

     c语言的32个关键字

     Enum: 枚举, 能穷举尽的类型。

    Register: 修饰一个变量, 让这个变量直接存到寄存器里面。

    signed:  表示有符号

    unsigned: 无符号

    void:  表示空类型

    9 种控制语句:

     34中预算符号:

     1 #include <stdio.h>  // #关键标识符,表示引入头文件; include: 引入头文件关键字  stdio.h系统标准输入,输出库对应的头文件,给prinf函数服务的
     2 
     3 // <>:表示系统库函数 ,“”表示用户自定义的库函数#include"XXX.h"
     4 
     5 int main(void)  //int 表示函数返回值整型数据,  main 函数名, 程序的唯一入口,有且只有一次。void,表示函数无需传参
     6 {  // 函数体起始位置
     7     printf("hello world"); 
     8     system("pause"); //调用system函数实现暂停功能
     9     return 0; //返回当前函数调用值, 要和main 函数的返回值一一对应
    10 }

    如何使用gcc, gcc 编译命令 gcc helloworld.c -o hellworld.exe  就把helloworld.c 编译成helloworld.exel了

    gcc 编译的几个步骤

    1. 预处理 gcc -E xxx.c -o xxx.i  ,  不检查错误, 包括语法错误, 及时有错误,会提示你,但是任然会生成xxx.i

    (1)头文件展开,比喻说把stdio.h 展开, 不检查语法错误,可以展开任意文件

    (2)宏定义替换, 将宏名字, 替换成宏的值,即在预处理阶段就替换宏定义的值

    (3)替换注释 , 将注释替换成空行

    (4)展开条件编译  ,根据条件来展开指令

    #include<stdio.h>
    
    #define PI 3.14
    
    int main(void)
    {
        #ifdef PI
        printf("already defined PI\n"); // 如果前面定义了预处理变量PI, 那么就执行这个printf语句,由于前面定义了PI,  所以在预处理的时候会打印already defined 
        #endif // PI
    
        printf("this is helloworld\n");
        return 0;
    }

    2. 编译

    gcc -S xxx.i -o xxx.s

    (1) 将c程序翻译成汇编指令

    (2) 逐步检查语法错误, 这也是编译中最耗时的步骤。 如果有语法错误,是不会出现xxx.s 文件的。

    3. 汇编 , 生成二进制文件

    gcc -c xxx.s -o xxx.o

    (1) 将汇编指令翻译成对应的二进制编码

    4. gcc xxx.o -o xxx.exe

    (1) 数据段合并

    (2)数据地址回填

    (3)库导入

     

  • 相关阅读:
    LINUX的LAMP环境搭配
    Jquery添加元素append及阻止表单提交submit
    django上传文件
    Html5本地存储LocalStorage
    Html5离线缓存详细讲解
    html5的canvas绘制迷宫地图
    EXT.NET复杂布局(二)——报表
    Silverlight——施工计划日报表(一)
    Silverlight——施工计划日报表(二)
    前端学HTTP之网络基础
  • 原文地址:https://www.cnblogs.com/shunguo/p/16801018.html
Copyright © 2020-2023  润新知