首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
makefile中多个宏定义
2026-09-03
Makefile中进行宏定义-***
实际上是gcc命令支持-D宏定义,相当于C中的全局#define: gcc -D name gcc -D name=definition Makefile中可以定义变量(和宏很像),但是是给make解释器用的,对所编译的文件完全没有作用. MSTAR:宏定义方式:字串定义方式和值定义方式 CC_TVOPTS += -DMS_BOARD_TYPE_SEL=$(BOARD_TYPE_SEL) CC_TVOPTS += -DMS_SW_CUS_SEL=SW_CONFIG_TRUNK_ATVMM C
Makefile中的特殊宏定义以及实用选项
Makefile中的一些特殊宏定义的名字跟shell中的位置变量挺相似的. $? 当前目标所依赖的文件列表中比当前目标文件还要新的文件 $@ 当前目标我名字 $< 当前依赖文件的名字 $* 不包括后缀名的当前依赖文件的名字 $^ 规则的所有依赖文件列表,使用空格分隔.如果目标是静态库文件名,它所代表的只能是所有库成员(.o文件)名.一个文件可重复的出现在目标的依赖中,变量“$^”只记录它的一次引用情况.就是说变量“$^”会去掉重复的依赖文件. make -C /the/d
Makefile,如何传递宏定义DEBUG【转】
转自:http://blog.csdn.net/linuxheik/article/details/8051598 版权声明:本文为博主原创文章,未经博主允许不得转载. Makefile,如何传递宏定义DEBUG 1, gcc中使用宏的例子:在程序中,通过有这样的代码段: #ifdef DEBUG printf("Debug is define!\n"); #endif printf("Hello World!\n"); 希望在编
iOS开发中的常用宏定义
在iOS开发的过程中合理的使用宏定义能够极大提高编码的速度,下面是一些常用的宏定义,部分内容来自互联网 Log // 调试状态, 打开LOG功能 #ifdef DEBUG #define GLLog(...) NSLog(__VA_ARGS__) #define GLLogMethod NSLog(@"%s", __func__) #else // 发布状态, 关闭LOG功能 #define GLLog(...) #define GLLogMethod #endif 颜色 #defin
关于malloc源码中的bin_at宏定义的个人见解
0x01:简介 在堆中的内存申请和释放中,为了减少使用系统调用函数对内存操作,malloc_state(分配区)结构中使用了fastbinsY数组和bins数组.当chunk被free后,bins链会将这些free chunk组织起来.当下次malloc时,会先对bins链中的free chunk进行遍历,有适合的则使用,无合适的再进行下一步操作. 在申请和释放操作时,一般是有一个arena(分配区,其为malloc_state结构类型).通过宏定义bin_at(m,i)即可获得对相应bins链
C中的空宏定义,即只有一个参数
空宏定义的测试代码 #include <stdio.h> #define D(x) int main() { D(printf("null macro")); return 0; } 当宏定义只有一个参数的时候就属于空宏定义, 使用该宏时和代码注释的效果相同 起到相同效果的宏定义如下所示 #define D(x) do{}while(0)
android的 makefile里 的常用 宏定义
在Android编译框架中,把许多固定的.反复用到的目录路径定义为 宏变量,常用 宏 如下: out/target/product/xxx的宏即为:PRODUCT_OUT out/target/product/xxx/system的宏即为:TARGET_OUT out/target/product/xxx/root的宏即为:TARGET_ROOT_OUT, device/test05/BoardConfig.mk 红色部分即为:TARGET_PRODUCT 宏,一般 TARGET_PRODUCT
C++中特殊的宏定义
常规用法不再介绍,做如下几点说明和介绍 1. 带参数的宏只完成简单字符替换,之前不做计算实参的工作,如下 #define SUM(x,y) x+yint a=3,b=2,c=1;int s;s=SUM(a+b,b)*SUM(c,b)+c; 结果应该是 s=a+b+b*c+b+c=10. 2. define中的特殊标识符 #define Conn(x,y) x##y#define ToChar(x) #@x#define ToString(x) #xint a=Conn(12,34);char b
iOS中常用的宏定义
转自http://www.jianshu.com/p/be00c3f3cafd //字符串是否为空 #define kStringIsEmpty(str) ([str isKindOfClass:[NSNull class]] || str == nil || [str length] < 1 ? YES : NO ) //数组是否为空 #define kArrayIsEmpty(array) (array == nil || [array isKindOfClass:[NSNull class
Linux学习笔记——举例说,makefile 添加宏定义
0.前言 从学习C语言開始就慢慢開始接触makefile,查阅了非常多的makefile的资料但总感觉没有真正掌握makefile.假设自己动手写一个makefile总认为非常吃力. 所以特意借助博客总结makefile的相关知识.通过样例说明makefile的详细使用方法. 例说makefile分为下面几个部分.很多其它内容请參考[例说makefile索引博文] 1.仅仅有单个C文件 2.含有多个C文件 3.须要包含头文件路径 4.添加宏定义
iOS 静态库中使用宏定义区分iPhone模拟器与真机---备用
问题描述 一般项目中,可以使用宏定义来判断模拟器还是真机,这无疑是有效的. #if TARGET_IPHONE_SIMULATOR #define SIMULATOR 1 #elif TARGET_OS_IPHONE #define SIMULATOR 0 #endif 但是宏是预编译时发生作用的,那么在静态库中是否还能够使用宏定义来区分模拟器与真机? 分析思路 宏定义确实是预编译时发生作用的,但是静态库编译出来的.a文件通常是分为模拟器与真机两个的,及时通过lipo合并为fat.a文件,实际运
C语言中的宏定义
目录(?)[-] 简单宏定义 带参数的宏 运算符 运算符 宏的通用属性 宏定义中圆括号 创建较长的宏 较长的宏中的逗号运算符 宏定义中的do-while循环do 空操作的定义 预定义宏 C语言中常用的宏 1. 简单宏定义 简单的宏定义有如下格式: [#define指令(简单的宏)] #define 标识符 替换列表 替换列表是一系列的C语言记号,包括标识符.关键字.数.字符常量.字符串字面量.运算符和标点符号.当预处理器遇到一个宏定义时,会做一个 “标识符”代表“替换列表”的记录.在文件后面的
c 语言中宏定义和定义全局变量的区别
宏定义和定义全局变量的区别: 1 作用时间不同. 宏定义在编译期间即会使用并替换,而全局变量要到运行时才可以. 2 本质类型不同. 宏定义的只是一段字符,在编译的时候被替换到引用的位置.在运行中是没有宏定义的概念的.而变量在运行时要为其分配内存. 3 宏定义不可以被赋值,即其值一旦定义不可修改,而变量在运行过程中可以被修改. 4 宏定义只有在定义所在文件,或引用所在文件的其它文件中使用. 而全局变量可以在工程所有文件中使用,只要再使用前加一个声明就可以了.换句话说,宏定义不支持extern. 在
完美单例宏定义(兼容ARC和MRC),项目中可以直接使用
单例模式: 1.永远只分配一块内存来创建对象 2.提供一个类方法, 返回内部唯一的一个对象(一个实例) 3.最好保证init方法也只初始化一次 写一个宏定义文件,传入宏定义函数名,自动生成符合类名的单例函数名: ARC下单例的常规写法(代码中的\是宏定义的写法): static id _instance; + (id)allocWithZone:(struct _NSZone *)zone { static dispatch_once_t onceToken; dispatch_once(&o
[C++] C++中的宏定义详解
转载自:C++中的宏定义 和 C++宏定义详解 一.#define解析 #define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率,但学生在学习时往往不能 理解该命令的本质,总是在此处产生一些困惑,在编程时误用该命令,使得程序的运行与预期的目的不一致,或者在读别人写的程序时,把运行结果理解错误,这对 C语言的学习很不利. 1 #define命令剖析 1.1 #define的概念 #define命令是C语言中的一个宏
c语言宏定义
一. #define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率,但学生在学习时往往不能理解该命令的本质,总是在此处产生一些困惑,在编程时误用该命令,使得程序的运行与预期的目的不一致,或者在读别人写的程序时,把运行结果理解错误,这对 C语言的学习很不利. 1 #define命令剖析 1.1 #define的概念 #define命令是C语言中的一个宏定义命令,它用来将一个标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为
C++宏定义详解
一.#define的基本用法 #define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率,但学生在学习时往往不能 理解该命令的本质,总是在此处产生一些困惑,在编程时误用该命令,使得程序的运行与预期的目的不一致,或者在读别人写的程序时,把运行结果理解错误,这对 C语言的学习很不利. 1 #define命令剖析 1.1 #define的概念 #define命令是C语言中的一个宏定义命令,它用来将一个标识符定义为一个字符
C语言宏定义相关
写好C语言,漂亮的宏定义很重要,使用宏定义可以防止出错,提高可移植性,可读性,方便性 等等.下面列举一些成熟软件中常用得宏定义......1,防止一个头文件被重复包含#ifndef COMDEF_H#define COMDEF_H//头文件内容#endif2,重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植.typedef unsigned char boolean; /* Boolean value type. */typedef unsigned long
iOS开发笔记--宏定义的黑魔法 - 宏菜鸟起飞手册
宏定义在C系开发中可以说占有举足轻重的作用.底层框架自不必说,为了编译优化和方便,以及跨平台能力,宏被大量使用,可以说底层开发离开define将寸步难行.而在更高层级进行开发时,我们会将更多的重心放在业务逻辑上,似乎对宏的使用和依赖并不多.但是使用宏定义的好处是不言自明的,在节省工作量的同时,代码可读性大大增加.如果想成为一个能写出漂亮优雅代码的开发者,宏定义绝对是必不可少的技能(虽然宏本身可能并不漂亮优雅XD).但是因为宏定义对于很多人来说,并不像业务逻辑那样是每天会接触的东西.即使是能偶尔使
c语言宏定义#define的理解与资料整理
1. 利用define来定义 数值宏常量 #define 宏定义是个演技非常高超的替身演员,但也会经常耍大牌的,所以我们用它要慎之又慎.它可以出现在代码的任何地方,从本行宏定义开始,以后的代码就就都认识这个宏了:也可以把任何东西定义成宏.因为编译器会在预编译的时候用真身替换替身,而在我们的代码里面却又用常常用替身来帮忙. 看例子: #define PI 3.141592654 在此后的代码中你尽可以使用PI 来代替3.141592654,而且你最好就这么做.不然的话,如果我要把PI 的精度再提高
typedef 类型重命名 和 #define 宏定义(1)
http://www.blogjava.net/jasmine214--love/archive/2010/11/29/339307.html 在现实生活中,信息的概念可能是长度,数量和面积等.在C语言中,信息被抽象为int.float和double等基本数据类型.从基本数据类型名称上, 不能够看出其所代表的物理属性,并且int.float和double为系统关键字,不可以修改.为了解决用户自定义数据类型名称的需求,C语言中引入类 型重定义语句typedef,可以为数据类型定义新的类型名称,从而
热门专题
django href传参
非阻塞/异步(epoll) openssl
maven跨服务器上传文件403异常
dietpi 安装软件
android gallery高级用法
10.6GPSubPoints下载安装
dotnetzip可以解压RAR吗
oracle 检查约束 多字段验重
mitmproxy查看版本
切换路由清除dva里的model
解锁uboot固件 极路由2
burp post上传文件
MAC配置了SSH钥匙,还是提示权限错误
数据库 open() 阻塞问题
下载了ilspy怎么在visual studio加载
so文件 debug release
编写程序实现西瓜书P84数据集3.0的贝叶斯分类器设计
ipconfig和ip addr命令的区别
LUA脚本key提取工具
php header 模拟浏览器