您正在查看: 2016年2月
如何通过宏来判断操作系统的类型(How to detect the operating system type using compiler predefined macros)
1、AIXDeveloper: IBM
Distributions: AIX
Processors: POWER代码:
#if defined(_AIX)
/* IBM AIX. ------------------------------------------------- */
#endif2、BSDDeveloper: Open source
Dist...阅读全文
如何通过宏来检查编译器名称和版本信息(How to detect the compiler name and version using compiler predefined macros)
1、如何检查编译器名称
代码:
#if defined(__clang__)
/* Clang/LLVM. ---------------------------------------------- */
#elif defined(__ICC) || defined(__INTEL_COMPILER)
/* Intel ICC/ICPC. ------------------------...阅读全文
如何查看编译器的宏(How to list compiler predefined macros)
大多数编译器都有命令行选项来列出所支持的宏注:在某些开源的编译器源码中也可以找到支持的宏如:Clang 、LLVM中宏主要定义文件为llvm/tools/clang/lib/Basic/Targets.cpp
GCC 、 G++中宏主要定义文件为gcc/config/*
题外小知识:linux中有一个strings命令可以以二进制形式查看文本或者程序中的可打印字符串,对与编译器而言,这些串包...阅读全文
ANSI属性控制码(linux彩色终端打印支持)
#ifndef COLOR_H #define COLOR_H#define COLORCLOSE "033[0m" /关闭所有属性/ #define HIGHTCOLOR "033[1m" /设置高亮度/ #define UNDERLINE "033[4m" /下划线/ #define BLINK "033...阅读全文
c语言不常用宏(#、##、...、_ _VA_ARGS_ _)
宏假如希望在字符串中包含宏参数,ANSI C允许这样作,在类函数宏的替换部分,#符号用作一个预处理运算符,它可以把语言符号转化程字符串。例如,如果x是一个宏参量,那么#x可以把参数名转化成相应的字符串。该过程称为字符串化(stringizing).incldue <stdio.h>define PSQR(x) printf("the square of" #x "is %d.n"...阅读全文