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

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

    条件预处理

    条件编译
    另外判断式
  • 相关阅读:
    读取csv文件时编码错误
    ubuntu keras
    ubuntu19.1 tensorflow
    随机数random
    获取文件夹下所有文件名
    np.random.send()
    tensorflow---识别图像特征(吴恩达课程)
    Springboot项目热部署-Devtools
    Hadoop综合大作业
    分布式文件系统HDFS 练习
  • 原文地址:https://www.cnblogs.com/moveofgod/p/2727083.html
Copyright © 2011-2022 走看看