C preprocessor
一直觉得C语言的预处理
器是个美妙而神奇的工具,以后会陆续把自己学到的关于它的新知识总结出来。To be continued aways...
一、 #define替换
(Pointer ON C
, Ch14.2.2)
程序中扩展#define定义符号和宏时,涉及如下几个步骤:
(1) 在调用宏时,首先对参数进行检查,看看是否包含了任何由#define 定义的符号,如果是,它们首先被替换。
(2) 替换文本随后被插入到程序中原来文本的位置,对于宏,参数被它们的值替代。
(3) 最后,再次到结果文本进行扫描,看看它是否包含了任何由#define 定义的符号,如果是,就重复上述处理过程。
看一个例子:
#define _QUOTEME(x) #x
#define QUOTEME(x) _QUOTEME(x)
那么QUOTEME(__LINE__);将会被替换成字符串“34”(如果当QUOTEME被调用时,__LINE__刚好等于34)
而_QUOTEME(__LINE__);将会直接被替换为"__LINE__"!
相关文档:
决定找时间把数据结构复习下,从链表开始吧。这一知识点虽说并不涉及复杂的算法,不需要费尽头脑去思考来龙去脉,但是要写出完整的程序来,还是要花一些时间的。特别是如果对指针操作不够熟练,极易出错。好久没用C写程序了……
完整代码:
/*
* 单链表基本操作C版实现程序
* 包括插入、删除、查找。
*
* ......
这是我写的第一个博客日志,在此首先测试一下本个博客系统的功能情况,如分类功能,阅读的简易性,代码显示的方式等。
so:添加第一个代码程序,如下:
private void Form1_Load(object sender, EventArgs e)
{//使listView控件支持编辑功能
System.Windows ......
今天发现电脑出现莫名奇妙的问题,任务栏的图标都无法使用了。而且注册表也无法使用。
处理方法:
一、先解锁注册表。此步骤后可以正常访问修改注册表。
http://zhidao.baidu.com/question/8109053.html?fr=ala0
注册表被管理员停用,
1、新建一个文本文件,在其中输入以下内容。
[HKEY_CURRENT_USER/Software/Micro ......
【实现功能】:Linux下的C编程:编写一个程序(库),实现定时器(计时器)的功能,它能为用户提供在同一进程中多次使用的定时器。这里要求用信号来实现。
【解题思路】:编写一个结构体Timer代表一个计时器,然后再定义Timer类型的数组myTimer[N],用来保存我们设置的定时器;再定义函数setTimer()生成计时器,并将生成 ......