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;
    }
    
    
    
     

     

  • 相关阅读:
    RUST实践.md
    redis.md
    opencvrust.md
    aws rds can't connect to mysql server on 'xx'
    Foundation ActionScript 3.0 With Flash CS3 And Flex
    Foundation Flash Applications for Mobile Devices
    Flash Mobile Developing Android and iOS Applications
    Flash Game Development by Example
    Actionscript 3.0 迁移指南
    在SWT中非UI线程控制界面
  • 原文地址:https://www.cnblogs.com/kmist/p/9865382.html
Copyright © 2011-2022 走看看