全部博文(695)
发布时间:2014-04-09 17:14:49
关于讨论代码中的 c = a+++b 这个表达式的面试题一直都在出现。从很直观的角度上来说你可以理解成为以下的两种形式一个是 c = (a++) + b; 另一种是c = a + (++b);其实做过编译程序的人可以考虑以下过程,在词法分析阶段要进行的是将输入的文件切成token,并形成token序列,你可以知道对+进行处理的时候将执行.........【阅读全文】
发布时间:2014-04-09 11:06:55
读写文件,是作为一个操作系统所提供的最基本接口之一。我们就从写文件过程:open,write,close这几个接口来说起,描述写文件的那些事儿。平时,我们做应用程序的时候,常常用到读写文件的函数接口,就拿写文件来说,我们用C/C++编写时,用到了以下的函数接口:1> FILE* fopen(const char*restrict filenam.........【阅读全文】
发布时间:2014-04-09 11:05:34
#include<stdio.h>//类型的大小(多少字节,以int的4字节为标准,内存对齐)#define __va_rounded_size(TYPE) \(((sizeof(TYPE)+sizeof(int)-1)/sizeof(int))*sizeof(int))//找到固定参数的位置,然后内存地址加上固定参数所占的字节数,就找到了第一个变参的地址了(参数传递,是右边的参数先压栈嘛)#define va_st.........【阅读全文】
发布时间:2014-04-09 11:04:46
在中科方德面试的时候,出了这么一道题:编写库函数atoi(数字字符串 变成 int)当时我写了好长一个程序,而且自己都知道漏洞百出,简直是个垃圾程序。今天看linux内核的时候正好遇到了同样的问题,看看大师们是怎么写的:#define is_digit(c) ( (c)>='0' &&(c)<='9' )static int skip_atoi(.........【阅读全文】