易截截图软件、单文件、免安装、纯绿色、仅160KB

C备忘录之六——#pragma预处理

#pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。
#pragma 指令对每个编译器给出了一个方法,在保持与C 和C ++语言完全兼容的情况下,给出主机或操作系统专有的特征。
依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。
一、#pragma message
#pragma message(“消息文本”)
当编译器遇到这条指令时就在编译输出窗口中将消息文本打印出来。
#ifdef _X86
#Pragma message(“_X86 macro activated!”)
#endif
二、#pragma code_seg
#pragma code_seg( ["section-name"[,"section-class"] ] )
它能够设置程序中函数代码存放的代码段,当我们开发驱动程序的时候就会使用到它。
三、#pragma once (比较常用)
只要在头文件的最开始加入这条指令就能够保证头文件被编译一次,这条指令实际上在
Visual C++6.0 中就已经有了,但是考虑到兼容性并没有太多的使用它。
四、#pragma warning
#pragma warning( disable : 4507 34; once : 4385; error : 164 )
等价于:
#pragma warning(disable:4507 34) // 不显示4507 和34 号警告信息
#pragma warning(once:4385) // 4385 号警告信息仅报告一次
#pragma warning(error:164) // 把164 号警告信息作为一个错误。
同时这个pragma warning 也支持如下格式:
#pragma warning( push [ ,n ] )
#pragma warning( pop )
这里n 代表一个警告等级(1---4)。
#pragma warning( push )保存所有警告信息的现有的警告状态。
#pragma warning( push, n)保存所有警告信息的现有的警告状态,并且把全局警告
等级设定为n。
#pragma warning( pop )向栈中弹出最后一个警告信息,在入栈和出栈之间所作的
一切改动取消。例如:
#pragma warning( push )
#pragma warning( disable : 4705 )
#pragma warning( disable : 4706 )
#pragma warning( disable : 4707 )
//.......
#pragma warning( pop )
在这段代码的最后,重新保存所有的警告信息(包括4705,4706 和4707)。
五、#pragma comment
该指令将一个注释记录放入一个对象文件或可执行文件中。
常用的lib 关键字,可以帮我们连入一个库文件。比如:
#pragma comment(lib, "user32.lib")
linker:将一个链接选项放入目标文件中,你可以使用这个指令来代替由命令行传入的
或者在开发环境中设置的链接选项,你可以指定/include 选项来强制包含某个对象,


相关文档:

一个用C实现的URL解码的程序

#include <stdio.h>
#include <string.h>
/*
* decode encd with URL, the result saved to decd.
* return point to be decoded string.
* auth: baisoo email:baisoo@msn.com
*/
char *decode( char *encd, char decd[] );
int main( int argc, char *argv[] )
{
    if( argc < ......

跨平台 C URL 编解码


char dec2hexChar(short int n) {
 if ( 0 <= n && n <= 9 ) {
  return char( short('0') + n );
 } else if ( 10 <= n && n <= 15 ) {
  return char( short('A') + n - 10 );
 } else {
  return char(0);
 }
}
short int h ......

C文件操作与fstream读取文本文件的效率比较

这几天由于要读取较大的文本文件,所以就比较了一下两者之间的效率问题。 所要读取的文本文件结构为每行由5个数组成,int int int float int,测试的文件有33W行,大小为9M。现在要将其读到一个cube结构体里面去,结构体有5个成员变量与之对应。 两种操作的代码如下 start = clock();
    ......

简述C和C++程序员学习历程

一家之言,欢迎拍砖哈。
  1、可以考虑先学习C.
  大多数时候,我们学习语言的目的,不是为了成为一个语言专家,而是希望成为一个解决问题的专家。做一个有用的程序员,做一个赚钱的程序员。我们的价值,将体现在客户价值上,而不是语言写得好不好看。
  C++是C的一个面向对象的解释,C++为C扩充了大规模工程应 ......

C编译基础

int main(int argc,char *argv[])
argc(argument count):参数的个数;
argv(argument value):参数值
argv[0] :文件名
argv[1]:第一个参数,argv[2];第二个参数,以此类推。
编译C
1 单源程序到可执行程序
            编译     & ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号