原文:编译预处理 -- 带参数的宏定义--[sky原创] 如有转载请注明出处   编译预处理  --  带参数的宏定义 前面为输出文件,后面为输入文件 gcc -E -o test.i test.c gcc -o test  test.i   test.c   test.i       取消宏定义 #undef 宏名   条件编译的三种形式     第三种 #if 常量表达式 源码1..... #else // 此部分可选 源码2... #endif   #----表示ABC(a) 即为 a这个…
"include"相信大家不会陌生,在我们写代码时,开头总会来一句"include XXX".include是干嘛用的,很多教材都提到了,因此这里不会再详细解释了,大概意思就是将代码文件需要用到的函数声明.常量等包含到代码文件中.include不是C语言的关键字,而是属于一种预编译的指令,那么预编译又是个什么东东,这也是本文要详细阐述的内容.为了更好地阐述预编译的概念,我们先来看一段代码.有一个头文件,叫"MyCode.h",内容如下: MyCo…
一般情况下,源程序中所有的行都参加编译.但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部分内容指定编译的条件,这就是“条件编译”.有时,希望当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句. 今天看到了 #define后面只跟一个“参数” 定义宏,并在预处理过程中将其替换为空字符串(即删除).这样做主要是为了标记某些内容,使程序阅读者能够清楚标记表明的意义,同时又不影响被编译的源代码.另外,通常这些标记能被条件编译的预处理命令#ifdef.#ifndef检测…
NDK里有个例子: android-ndk-r10/samples/module-exports/jni一看就懂了 ———————————————————————————– 从r5版本开始,就支持预编译的库(共享和静态). 也就是说在你的应用中,可包含和使用 预先编译的库. 这个功能的用处1. 你想分发你自己的库给第3方 NDK开发者,但不想把源码给他们2. 你想使用自己的预编译的库 来加速项目的Build过程. 声明一个预编译的库模块每个预编译的库,都必须声明为一个独立的模块 给ndk bui…
使用预编译库 NDK 支持使用预编译库(同时支持静态库和共享库).此功能有以下两个主要用例: 向第三方 NDK 开发者分发您自己的库(而不分发您的源代码). 使用您自己的库的预编译版本来提升编译速度. 本页将介绍如何使用预编译库. 声明预编译库 您必须将自己使用的每个预编译库声明为一个独立模块.为此,请执行以下步骤: 为模块提供名称.此名称不需要与预编译库本身的名称相同. 在模块的 Android.mk 文件中,将指向您提供的预编译库的路径分配到 LOCAL_SRC_FILES.指定 LOCAL…
我们有些时候会在#if   #ifndef   等预编译命令里面看到_WIN32等定义的宏.但是有些宏定义,你即使通过Visual Studio右键的go to definitions 和go to decleration就是找不到宏定义的位置,其实是在vcproject,.sln工程文件的项目属性里面就定义好了.因为在VS中时GUI界面的操作,所以容易找出来,但是Cmake下,换了一种创建工程文件的思维方式.初学者就会被迷惑了. 下图就是VS中设置预处理器定义的界面: 在Cmake脚本中就用a…
1.var定义的是“当前作用域下的一个变量”,当在函数内部不使用var声明时,会被当做全局变量而不是函数内的局部变量(严格模式下还会报错) 2.js的预编辑:[对定义式函数]直接创建为作用域上的函数变量,并将其值初始化为定义的函数代码逻辑,也就是为其建立了可调用的函数变量. 3.js的预编辑:[对var定义的变量] 会在开始先全部找出来,并且将初始值设为undefined 4.[对上面代码的解释]:第一个yourname是undefined:在js开始解析时获得了第一行的yourname声明和函…
define的定义方式 无参一般形式:#define 标认符 字符串                     比如:#define COUTD "%d\n" 带参一般形式:#define 宏名(形参表) 字符串             比如:#define M2(a,b) ((a>b)?a:b) #include <stdio.h> /*宏定义的注意事项(1)不建议过多的使用宏定义来处理运算,原因是运算符表达式的优先级很容易被搞混,代码优化困难*/ /*预处理在win…
0.前言     从学习C语言開始就慢慢開始接触makefile,查阅了非常多的makefile的资料但总感觉没有真正掌握makefile.假设自己动手写一个makefile总认为非常吃力. 所以特意借助博客总结makefile的相关知识.通过样例说明makefile的详细使用方法.     例说makefile分为下面几个部分.很多其它内容请參考[例说makefile索引博文] 1.仅仅有单个C文件     2.含有多个C文件         3.须要包含头文件路径     4.添加宏定义  …