预编译指令跨平台的作用

程序的编译过程可以分为预处理、编译、汇编三部分,其中预处理是首先执行的过程,预处理过程扫描程序源代码,对其进行初步的转换,产生新的源代码提供给编译器。

预处理过程读入源代码之后,会检查代码里包含的预处理指令,完成诸如包含其他源文件、定义宏、根据条件决定编译时是否包含某些代码的工作。

通过预编译指令,只会把满足条件的代码编译进来,其他代码不参与编译

1, 指令

预编译指令以 #开头,整条语句构成一条预编译指令

2, 作用

C/C++ 语言的预处理主要有三个方面的内容: 1.宏定义; 2.文件包含; 3.条件编译。

3,  一些常用的预编译指令

#include

#define #undef

#define指令定义了一个标识符及一个串,标识符称为宏名,源程序中宏名的每次出现都会用其定义的串进行替换,称为宏替换。

#undef指令取消一个已定义的宏

#if #elif #else #endif(详解)

跨平台经常用到一下代码,这可以写到函数内部或外部

#if defined(WP8)
		...
#elif defined(ANDROID)
		...
	#elif defined(IOS)
		...
	#endif

这样根据不同的平台,编译器会选择不同的代码来编译,扔掉其他平台的代码。

那么 WP8 ANDROID IOS 这几个预定义宏是如何定义的呢

XCode 下预定义宏方法(只需要在这里面添加IOS 宏,这样编译运行或打包就只会编译IOS下面的代码 )

http://blog.csdn.net/tutuboke/article/details/44855777

eclipse android预定义宏的方法(这样只编译 条件编译指令 #elif defined(ANDROID) 下代码,编译的*.so文件不会包含其他平台的代码)

需要在编译so文件的 *.mk文件里面添加    android MK文件详解

LOCAL_CFLAGS +=-DANDROID    等价于在C/C++ 中得   #define ANDROID

VS  wp8 设定预编译指令方法:(这样就只会编译 条件编译指令 WP8 下面的代码)

项目->属性->c/c++ ->预处理器->预处理器定义

#ifdef  #ifndef  #endif

#ifndef MYHEAD_H
#define MYHEAD_H
	#include "myHead.h"
#endif
时间: 2024-10-05 23:51:49

预编译指令跨平台的作用的相关文章

iOS中的预编译指令的初步探究

看到非常好的两篇技术文,转来方便自己查看. 转自:http://www.cnblogs.com/daiweilai/p/4234336.html 开篇 我们人类创造东西的时候有个词叫做”仿生学“!人类创造什么东西都会模仿自己来创造,所以上帝没有长成树的样子而和人长得一样,科幻片里面外星人也像人一样有眼睛有鼻子……但是人类自己创造的东西如果太像自己,自己又会吓尿(恐怖谷效应),人类真是奇葩:奇葩的我们在20世纪创造了改变世界的东西——计算机(电脑),不用怀疑,这货当然也是仿生学!这货哪里长得像人了

iOS中的预编译指令

iOS中的预编译指令的初步探究 目录[+] 开篇 我们人类创造东西的时候有个词叫做”仿生学“!人类创造什么东西都会模仿自己来创造,所以上帝没有长成树的样子而和人长得一样,科幻片里面外星人也像人一样有眼睛有鼻子……但是人类自己创造的东西如果太像自己,自己又会吓尿(恐怖谷效应),人类真是奇葩:奇葩的我们在20世纪创造了改变世界的东西——计算机(电脑),不用怀疑,这货当然也是仿生学!这货哪里长得像人了??别不服,先听我说完,先把你的砖头放下.狭义的仿生学是外形上仿生嘛,其实广义上仿生学还可以原理的仿生

C++ 内置宏定义 与 预编译指令

内置宏和预编译指令, 在代码调试.单元测试.跨平台代码中经常会用到.这里记录一下. 1. 内置宏 (文件名,当前行号,当前日期,当前时间,当前执行方法名) __FILE____LINE____DATE____TIME__ __FUNCTION__ 2.预编译指令 可以防止头文件被多次引用 可以方便解决代码跨平台编译问题 可以根据自定义变量灵活执行程序 等等,许多好处 效果可以看代码实例: test.h 1 #ifndef __TEST_H 2 #define __TEST_H 3 4 #incl

c/c++中的预编译指令总结

预处理指令提供按条件跳过源文件中的节.报告错误和警告条件,以及描绘源代码的不同区域的能力.使用术语“预处理指令”只是为了与 C 和 C++ 编程语言保持一致.在 C# 中没有单独的预处理步骤:预处理指令按词法分析阶段的一部分处理. 预处理器的主要作用就是把通过预处理的内建功能对一个资源进行等价替换,最常见的预处理有:文件包含,条件编译.布局控制和宏替换4种. 文件包含:#include 是一种最为常见的预处理,主要是做为文件的引用组合源程序正文. 条件编译:#if,#ifndef,#ifdef,

[转]Delphi预编译指令总结

Delphi预编译指令总结 Delphi作为一个优秀的开发工具,这不仅是由于它开创了"构件 (Component)"时代,影响深远:另一个原因是它拥有非常出色的编译器,Borland(Inprise)公司宣称Delphi具有世界上最快的 编译器,如果你使用过Visual C++和Delphi你会明显体会到这一点.Delphi快速高效的编译器主要来自Object Pascal的严谨,使用Delphi随时都在和编译器交流,大部份情况下不需要我们干涉编译器的运行,但是有时也需要对编译器进行必

C/C++中的预编译指令

工作中遇到的: 一个头文件中的: #pragma warning(disable:4996)#pragma warning(disable:4244)#pragma warning(disable:4267) 不理解意思,遂查? C/C++中的预编译指令 程序的编译过程可以分为预处理.编译.汇编三部分,其中预处理是首先执行的过程,预处理过程扫描程序源代码,对其进行初步的转换,产生新的源代码提供给编译器.预处理过程读入源代码之后,会检查代码里包含的预处理指令,完成诸如包含其他源文件.定义宏.根据条

几个预编译指令的用法

转载:痴 狼While there is life there is hope http://www.cnblogs.com/Bolin/archive/2011/02/20/1959120.html 几个预编译指令的用法    预处理过程扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器.可见预处理过程先于编译器对源代码进行处理.在C语言中,并没有任何内在的机制来完成如下一些功能:在编译时包含其他源文件.定义宏.根据条件决定编译时是否包含某些代码.要完成这些工作,就需要使用预处理程序.

C# 预编译指令

预编译指令指导编译器在实际编译开始之前对信息进行预处理. 所有预处理指令都是以#开始. 在一行上,只有空白字符可以出现在预处理指令之前. 预处理器指令不是语句,不用以分号结束. C#编译器没有一个单独的预处理器. C#中预处理器指令在条件编译中起作用.

蓝欧培训--lessonc12[枚举,位运算符,预编译指令,const]

////  main.m//  lessonc12////  Created by 张阳帅 on 15-1-6.//  Copyright (c) 2015年 张阳帅. All rights reserved.// #import <Foundation/Foundation.h> #define kDeBug //当一个变量只有固定几个取值的时候,可以定义一个枚举类型//枚举类型声明了一组常数,将人能看懂的标示符和计算机能看懂的数字建立对应关系//如果枚举类型不指定常数,默认从0开始, 依次