一、生成configure过程中各文件之间的关系图 二、详细介绍 autoscan: 扫描源代码以搜寻普通的可移植性问题,比如检查编译器,库,头文件等,生成文件configure.scan,它是configure.ac的一个雏形。 aclocal:根据已经安装的宏,用户定义宏和acinclude.m ...
分类:
其他好文 时间:
2018-04-11 21:51:55
阅读次数:
194
const和#define的利弊,从而推导const的意义;const和#define都有类似的功能,那就是定义一个“常量”;想用来替换#define定义常量这种方式。这是一种定义宏的方式。因为宏替换定义常量有一定的缺陷:不做类型检查,没有作用域限制(这样很容易被后续污染)。#include<iostream>#include<string>usingnamespacest
分类:
编程语言 时间:
2018-04-10 15:14:50
阅读次数:
225
C 预处理器 C 预处理器不是编译器的组成部分,但是它是编译过程中一个单独的步骤。简言之,C 预处理器只不过是一个文本替换工具而已,它们会指示编译器在实际编译之前完成所需的预处理。我们将把 C 预处理器(C Preprocessor)简写为 CPP。 所有的预处理器命令都是以井号(#)开头。它必须是... ...
分类:
其他好文 时间:
2018-03-09 20:34:57
阅读次数:
159
数据类型: 基本类型(int、short、long、char、float、double) 构造类型(数组类型、构造类型、联合类型、枚举类型) 指针类型 常量: 程序运行过程中不可改变的量 变量: 变量使用前需定义 int b是声明,也是定义 extern int b 只是声明不是定义 宏定义后都可以 ...
分类:
编程语言 时间:
2018-03-07 18:58:02
阅读次数:
188
一、目的 使用autotools工具来帮助我们自动地生成符合自由软件惯例的makefile(这样就可以像常见的GNU程序一样,只要使用“./configure”, “make”, “make install” 就可以把程序安装到linux系统中去了) GNU的软件风格的编译安装步骤: # ./con ...
分类:
其他好文 时间:
2018-02-28 17:29:40
阅读次数:
222
解决办法一、 #if defined(_WIN32) # ifndef GLUT_BUILDING_LIBextern _CRTIMP void __cdecl exit(int); 上面是glut.h中对exit的使用,意思是如果没有定义宏?GLUT_BUILDING_LIB,就使用它的exit, ...
分类:
其他好文 时间:
2018-02-14 23:17:22
阅读次数:
788
作为第一篇,首先要说一下C++11与C99的兼容性。 C++11将 对以下这些C99特性的支持 都纳入新标准中: 1) C99中的预定义宏 2) __func__预定义标识符 3) _Pragma操作符 4) 不定参数宏定义以及__VA_ARGS__ 5) 宽窄字符串连接 这些特性并不像语法规则一样 ...
分类:
其他好文 时间:
2018-02-04 00:28:56
阅读次数:
552
本文主要记录了C/C++预处理指令,常见的预处理指令如下: #空指令,无任何效果 #include包含一个源代码文件 #define定义宏 #undef取消已定义的宏 #if如果给定条件为真,则编译下面代码 #ifdef如果宏已经定义,则编译下面代码 #ifndef如果宏没有定义,则编译下面代码 # ...
分类:
编程语言 时间:
2018-01-17 20:22:01
阅读次数:
197
宏定义: 不带参数的宏: 定义宏的结构 #define 宏名 字符串 #define PI 3.1415926 //使用 PI 代替了3.1415926 如: #define u "hello world" int main(int argc, char *argv[]) { printf(u); ...
分类:
其他好文 时间:
2017-12-29 15:30:56
阅读次数:
105
QLExpress是一个轻量级的类java语法规则引擎,作为一个嵌入式规则引擎在业务系统中使用。让业务规则定义简便而不失灵活。让业务人员就可以定义业务规则。支持标准的JAVA语法,还可以支持自定义操作符号、操作符号重载、函数定义、宏定义、数据延迟加载等。 详细看官方的QLExpress语法介绍 CS ...
分类:
其他好文 时间:
2017-12-20 14:05:42
阅读次数:
616