zoukankan      html  css  js  c++  java
  • 链接相关 & 预处理

    链接

    当多个文件同时被编译时,不同文件中的函数的使用,比如main中使用了其他文件的函数,那么这是有问题的。因为main不认识该函数

    解决以上问题的办法有2个,

    1) 用 extern 来声明别的文件中的函数或变量,而此时,如果多个文件需要该文件中的函数时,每个文件都要声明一次,这样不好。所以就引入第2种办法

    2)使用头文件,然后在使用到得地方加入 #include “stack.h”这样的话,就解决了以上问题,使用头文件时要注意,Header Guard,就是要避免头文件被多次的预处理。具体办法是使用宏。。。看以下例子

    Header Guard

    这样做的目的是,防止同一个头文件被多次处理,如果是已经定义了STACK_H这个宏的话,那么该文件就会被看做是个空文件。至于动态链接(比如链接math.h) 这个是在本地链接之后。有的时候还需要指定链接的库才可以,详情参考gcc相关内容。

    预处理

    1。宏定义
    变量宏 #define N 20 或 #define STR “hello, world”

    函数宏 #define MAX(a, b) ( (a) > (b ) ? (a ) : (b ))

    k = MAX( i, j );

    定义这种函数宏要格外小心,首先这种的参数不需要类型,另外要多用括号 ()

    条件预处理

    条件编译
    另外判断式
  • 相关阅读:
    DB开发之oracle存储过程
    DB开发之mysql
    DB开发之oracle
    DB开发之postgresql
    Object-C开发之instancetype和id关键字
    Linux 学习笔记
    Java开发之JDK配置
    Android开发在路上:少去踩坑,多走捷径
    C/C++之Qt正则表达式
    Linux 安全配置指南
  • 原文地址:https://www.cnblogs.com/moveofgod/p/2727083.html
Copyright © 2011-2022 走看看