自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

林世霖的技术博客

专注编程技术普及20年

  • 博客(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

最新版本Node.js 15.4.0.pkg

Node.js最新版,从墙外搞过来的,方便国内的朋友开发和学习Node.js最新版,从墙外搞过来的,方便国内的朋友开发和学习

2020-12-17

触摸板的库源代码

触摸板的优化算法库源代码,可在linux下编译,通用于各个平台

2016-10-24

jpegsrc.v9a.tar.gz

jpegsrc.v9a.tar.gz

2015-05-15

纯C语言+libalsa实现最简单录音程序

纯C语言+libalsa实现最简单录音程序

2014-12-08

纯C语言+libjpeg实现最简单jpeg图片解码显示程序

纯C语言+libjpeg实现最简单jpeg图片解码显示程序

2014-12-08

taglist.zip

Taglist是vim的一个插件,可以方便地在终端侧边显示出当前程序所有的函数、宏等信息,支持鼠标双击跳转,对于规模比较大的代码而言,这是一个非常实用功能。

2013-11-10

arm-linux-gcc-4.4.3.tar.gz

针对ARM和LINUX平台的交叉工具链,下载时请注意版本

2012-12-11

移植uboot1.3.4.pdf

详细描述uboot1.3.4的移植过程,有具体的实验步骤,按照步骤可以傻瓜式完成uboot1.3.4的ARM平台移植。

2012-12-11

ads_keygen多版本注册机.7z

ads_keygen多版本注册机.7z

2012-05-16

串口工具putty.ext

串口工具,可以实现串口信息的显示,远程连接ssh服务等等等很多很多很好的服务的

2012-05-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除