Objective-C学习笔记之预处理程序是本文要介绍的内容,主要介绍了预处理程序中语句的使用方法,预处理程序语句以(#)标记。来看详细内容。
一、#define
1、更高级的定义类型
给符号名称指派表达式和其他任何东西。如:
- #defineTWO_PI2*3.141592654,#defineAND&&
预处理程序假设定义包含在程序的一行中。如果需要第二行,那么上一行的最后一个字符必须是反斜线符号“\”。如:
- #defineIS_LEAP_YEAR(y)y%4==0&&y0!=0\
-
||y@0==0
可带参数。预定义(definition)通常称作“宏”。
2、#运算符
如果在宏定义中参数之前放置一个#,那么在调用该宏时,预处理程序将根据宏参数创建C风格的常量字符串。如:
- #definestr(x)#x
- str(testing)——"testing"
- str("hello")——"\"hello"\"
3、##运算符
用于把两个标记(token)连在一起。它的前面(或后面)是宏的参数名称。预处理程序使用调用该宏时提供的实际参数,并且根据该参数和##之后(或之前)的标记创建单个标记。如:
- #defineprintx(n)printf("%i\n",x##n);
- printx(20)——printf("%i\n",x20);
二、#import语句
.h->头文件(或包含文件)。
设置一组#import语句,将其输入到一个xxx.h的独立文件中,若需要则使用预处理程序指令:
#import "xxx.h"。
#import <……>导致预处理程序只在特殊的"system"头文件目录中寻找包含文件,当前目录不会被搜索。
#import "……"预处理程序在一个或者多个文件目录。
三、条件编译
通常用于创建可以在不同计算机系统上编译运行的程序,经常用来开关程序中的各种语句。
1、#ifdef、#endif、#else和#ifndef语句
从一个计算机系统上移植到另一个计算机系统上。
2、#if和#elif预处理程序语句
表达式结果非零——#else、#elif或#endif为止的所有后续行,否则跳过它们。
特殊运算符:#define (name) 也能用在#if语句中。
3、#undef语句
使一些已经定义的名称称为未定义的。
分享到:
相关推荐
《objective-c程序设计》通过大量的实例系统地介绍了objective-c语言的基本概念、语法规则、框架、类库及开发环境。读者在阅读《objective-c程序设计》后,可以掌握objective-c语言的基本内容,并进行实际的iphone/...
12.3.2 #if和#elif预处理程序语句 12.3.3 #undef语句 12.4 练习 第13章 基本的C语言特性 13.1 数组 13.1.1 数组元素的初始化 13.1.2 字符数组 13.1.3 多维数组 13.2 函数 13.2.1 参数和局部变量 13.2.2 函数的返回...
《Objective-C程序设计》(作者杨正洪、郑齐心、李建国)通过大量的实例系统地介绍了Objective-C语言的基本概念、语法规则、框架、类库及开发环境。读者在阅读本书后,可以掌握Objective-C语言的基本内容,并进行...
前6章讲述Objective-C语言,包括数据类型、运算符、表达式、条件语句、循环语句、类、协议、继承、类别、编译预处理等内容。第7章到第10章讲述Objective-C的基础框架,以及文件操作、内存管理、数据保存等内容。第11...
大多数iOS调整开发人员都使用Objective-C预处理程序Logos来简化调整编写过程。 徽标将伪指令(例如%hook , %new , %ctor , %init等)转换为纯Objective-C代码,该代码与基板交互以在运行时挂钩代码。 该存储库...
.m Objective-C源程序;预处理,编译,汇编 .i 预处理后的C文件;编译,汇编 .ii 预处理后的C++文件;编译,汇编 .s 汇编语言源程序;汇编 .S 汇编语言源程序;预处理,汇编 .h 预处理器文件;通常不出现在命令行上
混淆演示 演示如何从Swift代码访问在运行时(使用编译时#define )对其名称进行混淆的... 这种方法的问题在于,由于#define预处理程序字符串替换不会扩展到Swift源文件,因此与混淆的Objective-C类交互的Swift代码需
.m Objective-C源程序;预处理,编译,汇编 .i 预处理后的C文件;编译,汇编 .ii 预处理后的C++文件;编译,汇编 .s 汇编语言源程序;汇编 .S 汇编语言源程序;预处理,汇编 .h 预处理器文件;通常不出现在命令行上
.m Objective-C源程序;预处理,编译,汇编 .i 预处理后的C文件;编译,汇编 .ii 预处理后的C++文件;编译,汇编 .s 汇编语言源程序;汇编 .S 汇编语言源程序;预处理,汇编 .h 预处理器文件;通常不出现在命令行上
第 3 章 预处理程序 第 4 章 编译 C 程序 第 5 章 编译 C++程序 第 6 章 编译 Objective-C 第 7 章 编译 Fortran 程序 第 8 章 编译 Java 第 9 章 编译 Ada 程序 第 10 章 混合语言 第 11 章 国际化 第 12 章 连接和...
C预处理程序不是编译器的一部分,而是编译过程中的一个单独步骤。 简单来说,C预处理器只是一种文本替换工具,它指示编译器在实际编译之前进行所需的预处理。 我们将C预处理器称为CPP。 所有预处理器命令均以哈希...
GCC 原名为 GNU C 语言编译器(GNU C Compiler),因为它原本只能处理C语言。GCC 后扩展,变得可处理 C++,后又支持更多编程语言,如Fortran、Pascal、Objective-C、Java、Ada、Go以及各类处理器架构上的汇编语言等...
Swift不包含C预处理程序,因此开发人员无法使用他们将在Objective-C中使用的调试日志#define宏。 这意味着我们传统的生成良好调试日志的方式不再起作用。 仅使用普通的旧print调用就意味着您会丢失很多有用的信息,...
c#毕业设计源码下载distcc-一个免费的分布式C ...3.0中添加的distcc“泵”功能通过不仅向distcc服务器分发编译而且还向distcc服务器分发预处理程序而对distcc进行了改进。 这要求服务器和客户端具有相
distcc-一个免费的分布式C / C ++编译器系统 马丁·波尔当前文档: : 正式 Fergus Henderson,Nils Klarlund,Manos Renieris和Craig Silverstein(Google Inc.)添加了“泵”功能distcc是一个程序,用于在网络上的...
它们都不需要特殊的预处理程序,因此你可以同时使用标准 C++ 和 GTK。 本教程试图尽可能详细地描述 GTK,但是肯定不能面面俱到。本教程假设你能够较好的理解 C 语言,并且了解怎样编写一个 C 程序。有 X 编程经验会...
但是,该应用程序将仅查找名为environment.plist的文件,因此构建过程将在适当的plist上进行复制。 使用Xcode的Info.plist预处理功能可根据相应的environment_XXX.plist文件中的设置动态填充Info.plist 。 使用...