- 博客(15)
- 资源 (11)
- 收藏
- 关注
原创 一道TCL的笔试题---递归
<br /><br />题目:<br />在下面这个程序片段中的划线处填上适当的表达式,使之逆序输出数组元素。<br />void recur(int a[], int k)<br />{<br /> int tmp;<br /> if(_____)<br /> {<br /> recur(_____, _____);<br /> tmp = a[0];<br /> a[0] = a[k-1];<br /> a[k-1] = tmp;
2010-12-24 12:23:00 1429
原创 变参函数实现细节
<br /><br />C语言的函数虽然不具备C++的多态性,但也可以接受参数不确定的情况,当然,C语言中的变参函数实际在功能上是受限的,废话不多讲,下面来看看变参函数的边边角角的问题。<br />讨论之前我们来看一下最熟悉的变参函数printf的原型声明:<br />int printf(const char *format, ...);<br /> <br /> <br />注意到,在函数中声明其参数是可变的方法是三个点“...”,但同时,这个函数必须要有一个固定的参数,比如printf里面的这个fo
2010-12-24 12:22:00 793
原创 目标文件里装了什么东西
<br /><br />了解程序中各种变量在编译和运行阶段的状态和属性,对我们开发程序而言是非常有益的,通过对以下几个例子的探讨,搞清楚目标文件中都包含了哪些信息,能让我们明白C语言中各种存储类对程序的影响,也让我们在编写一个程序的时候胸有成竹。就像那个谁说的,真正的程序员,必须对自己程序的每一个字节了如指掌。<br />我们看看如下这个程序代码:<br />/* simple_section.c */<br /> <br />int printf(const char *format, ...); //懒
2010-12-24 12:21:00 1734
原创 一道试题引发的血案
<br /><br />某日,看到一道比较恶心的C语言的试题,考了很多比较绕的知识点,嘴脸如下:<br />int main(void)<br />{<br /> int a[4] = {1, 2, 3, 4};<br /> int *ptr1=(int *)(&a+1);<br /> int *ptr2=(int *)((int)a+1);<br /> printf("%x, %x/n", ptr1[-1], *ptr2);<br /> return 0;<br />}<br
2010-12-24 12:20:00 2444 6
原创 字符界面编程利器——vim + ctag + Taglist
<br /><br />习惯了在windows下用sourceInsight编程的人,当然也希望在linux的字符终端下也能有一样酷的软件,这里要介绍给大家的是如题所示的三款软件:vim , ctag 和Taglist 。<br />很多时候我们需要在多个源程序之间实现函数、宏定义、外部变量等的跳转查询,甚至有时候需要到内核或库源代码里窥视他们真面目,我们也需要有列出程序内部所使用的各个函数、变量、宏等等信息的工具,这些功能仅仅靠vim完成是比较困难的,但也不必失望,因为我们还有两件利器:ctag负责建立标
2010-12-24 12:18:00 1045
原创 C语言**位运算**终极剖析
<br /><br />C语言有时候被称为中级语言 ,即介于低级与高级之家的编程语言,原因是C语言不仅具有高级语言抽象机制,也具有低级语言直接操作变量个别位的能力,即我们即将要讨论的C语言强大的位 操作运算。C语言的这种能力也许会让你感到奇怪,但这种能力有时确实是必须的,或者至少是有用的,例如我们通常向硬件设备发送一两个字节来控制该设备,其 中的每一位都有特定的含义。许多压缩和加密操作都对单独的位进行操作。高级语言一般不处理这一级别的细节,可C语言在提供高级语言便利的同时也能够在典型的为汇编语言所保留的级别
2010-12-23 21:42:00 2198
原创 类型转换
<br /><br />类型转换是C语言中常识性的知识点,但不注意又会有让人迷惑的时候,来看一道笔试题:<br />以下两个程序片段A和B,问那个for循环能运行?<br />A:<br />unsigned short i; <br />unsigned short index=0; <br /><br />for(i = 0; i <index-1; i++)<br />{<br /> ... ...<br />}<br />B: <br />unsigned short i; <br />unsi
2010-12-23 21:39:00 865
原创 类型转换
<br /><br />类型转换是C语言中常识性的知识点,但不注意又会有让人迷惑的时候,来看一道笔试题:<br />以下两个程序片段A和B,问那个for循环能运行?<br />A:<br />unsigned short i; <br />unsigned short index=0; <br /><br />for(i = 0; i <index-1; i++)<br />{<br /> ... ...<br />}<br />B: <br />unsigned short i; <br />unsi
2010-12-23 21:39:00 824 2
原创 IO编程 之 缓冲篇
<br /><br />涉及linux中IO编程的时候,我们总是不可避免地要跟各种各样的缓冲机制打交道,学好linux IO编程不是简单地掌握几个函数的用法就万事大吉,正确地运用IO需要对其缓冲机制全面的理解,切不可依葫芦画瓢,蒙混过关。<br /><br /><br />切入正题之前,我们先看一个简单的程序:<br />#include <stdio.h><br />#include <errno.h><br /><br />#include <unistd.h> <br /><br /><br />#d
2010-12-23 21:38:00 1130 3
原创 vim编码
<br /><br />Vim和所有的流行文本编辑器一样,可以很好的编辑各种字符编码的文件,这当然包括 UCS-2、UTF-8 等流行的 Unicode 编码方式。而且和很多来自 Linux 世界的软件一样,这需要你自己动手设置。<br /><br />Vim 有四个跟字符编码方式有关的选项,encoding 、fileencoding 、fileencodings 、termencoding (这些选项可能的取值请参考 Vim 在线帮助 :help encoding-names),它们的意义如下:<br
2010-12-23 21:37:00 936 1
原创 开飞机
<br /><br />在若干年一度的“国际C语言混乱代码”(-_-!)竞赛中看到好多好玩的东西,居然还有人写了“一架飞机”,哈哈,有图为证:<br /><br />本来想把代码copy过来的,结果排版全乱了,只好上传图片。^_^
2010-12-22 22:19:00 977
原创 UNIX缓冲机制
<br /><br />某日一朋友写了一个HELLO WORLD代码,出不来结果,代码如下:<br />#include <stdio.h><br />int<br />main(int argc, char **argv){<br /> printf("hello world!");<br /> _Exit(0);<br />}<br /> <br /> <br />注意到,在代码中printf语句打印的字符串最后没有带换行符,而且最后调用了_Exit函数,这导致了在终端屏幕上显示不出来字符串
2010-12-22 22:18:00 1082
原创 开飞机
<br /><br />在若干年一度的“国际C语言混乱代码”(-_-!)竞赛中看到好多好玩的东西,居然还有人写了“一架飞机”,哈哈,有图为证:<br /><br />本来想把代码copy过来的,结果排版全乱了,只好上传图片。^_^
2010-12-22 22:18:00 883
原创 解剖typedef关键字
<br /><br />带你解剖typedef之前,让我们先来看看POSIX.1中对信号处理函数signal的原型说明:<br />void (*signal(int sig, void (*func)(int)))(int);<br />对于不熟悉C语言声明的朋友,看到这样的函数原型估计离崩溃不远了,我们再来看看ANSI C中对此函数原型是作如何解释的:<br />typedef void (*sighandler_t)(int);<br />sighandler_t signal(int signum,
2010-12-22 22:16:00 746
原创 UNIX文件权限探讨
<br /><br />关于unix系统中涉及权限的问题探讨,跟大家分享下<br /><br />首先要明白一个关键点----权限分为两种:<br />第一种是用ls -l命令显示出来的文件性质的权限 ,比如 -rw-r--r-- foo foo file,这里的读写权限是该文件本身的性质,表示该文件本身属于foo用户,属于foo组。<br />第二种是进程性质的权限 ,比如 -rwsr--r-- bar bar file,这个file文件本身属于bar用户,但是由于设置了用户设置ID,导致如果以foo用户
2010-12-22 22:04:00 628
taglist.zip
2013-11-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人