zoukankan      html  css  js  c++  java
  • C语言基础篇(零)gcc编译和预处理

    导航:

      1. gcc编译

      2. 预处理

     ----->x<------------->x<--------------->x<--------------->x<------------->x<-----

    1. gcc编译

            -- 1.0 预处理 gcc -E [.c --> .i ] 展开宏定义.
            -- 1.1 编译 gcc -S [ .c --> .s ]
            -- 1.2 汇编 gcc -c [ .s --> .o ]
            -- 1.3 链接 gcc -o [*.o --> bin] 链接了系统库.
            -- 1.4 手动链接库文件 -I 比如我拿到了一个私库,没有提供源码只提供了一些接口.那么在使用后编译的时候
                    需要手动导入,就是库的使用. -I路径. 在后文,我们自己会生成库文件,静态库和动态库,这个很基础,一定要学好.
            -- 1.5 预处理开关 gcc -Dxxx 打开预处理的选项.!!
     
    2.预处理
      2.1 #include
        #include "" 和 #include <> 的区别. <>只寻找系统库.不寻找用户头文件.
      2.2 #define
        (1) 替换: #define 宏名 宏体 在替换过程中不进行语法检查,所以宏体运算尽量加().
        比如: #define A 3+2
          a = 4*A --> 4*3+2 xx #define A (3+2)
        (2) 宏函数 #define ABC(x) (5+x)

      2.3 #ifdef #ifndef #else #endif
        (1) 条件预处理
        应用:调试版本和发行版本的切换
        (2) # 和 ##
          define ABC(x) #x 实际上是转换成"x" 字符串
          define ABC(x) day##x -->dayx 就是一个连接符,把day当前前缀再展开.
    define:
    
    
    int main()
    {
    #ifdef ABC
        printf("我是调试信息
    ");
    #endif
        printf("我是正常信息
    ");
        return 0;
    }
    
    
    
     

     

  • 相关阅读:
    Binary Tree Paths
    Implement Stack using Queues
    Path Sum II
    Path Sum
    Plus One
    Add Digits
    Missing Number
    H-Index II
    H-Index
    Ugly Number II
  • 原文地址:https://www.cnblogs.com/kmist/p/9865382.html
Copyright © 2011-2022 走看看