上一页 1 ··· 17 18 19 20 21
摘要: NOTE: Description of how the code works (when it isn't self evident)XXX: Warning about possible pitfalls, can be used as NOTE:XXX:HACK: Not very well written or malformed code to circumvent a problem/bug. Should be used as HACK:FIXME:FIXME: This works, sort of, but it could be done better. (usua 阅读全文
posted @ 2012-11-08 22:16 vanishfan 阅读(924) 评论(0) 推荐(0) 编辑
摘要: GCC:error: a label can only be part of a statement and a declaration is not a statementswitch(a){ swtch(a){case 1: case 1:.................... {.................... ................................... ...............break; ................case 2: }... 阅读全文
posted @ 2012-11-06 09:42 vanishfan 阅读(12379) 评论(0) 推荐(2) 编辑
摘要: 前两天有人问了个关于Unix的fork()系统调用的面试题,这个题正好是我大约十年前找工作时某公司问我的一个题,我觉得比较有趣,写篇文章与大家分享一下。这个题是这样的:题目:请问下面的程序一共输出多少个“-”?1234567891011121314#include <stdio.h>#include <sys/types.h>#include <unistd.h>int main(void){int i;for(i=0; i<2; i++){fork();printf("-");}return 0;}如果你对fork()的机制比较熟 阅读全文
posted @ 2012-11-01 19:00 vanishfan 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 一顺便说说了哦通常情况下,对函数库的链接是放在编译时期(compile time)完成的.所有相关的对象文件(object file)与牵涉到的函数库(library)被链接合成一个可执行文件(executable file).程序在运行时,与函数库再无瓜葛,因为所有需要的函数已拷贝到自己门下。所以这些函数库被成为静态库(static libaray),通常文件名为"libxxx.a"的形式.其实,我们也可以把对一些库函数的链接载入推迟到程序运行的时期(runtime).这就是如雷贯耳的动态链接库(dynamic link library)技术.二动态链接库的特点与优势首先 阅读全文
posted @ 2012-11-01 16:15 vanishfan 阅读(1776) 评论(1) 推荐(0) 编辑
摘要: 全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?可以,在不同的C文件中以static形式来声明同名全局变量。头文件中不可以直接定义变量和函数,但是可以定义static变量 ,类。extern用法,全局变量与头文件(重复定义)用#include可以包含其他头文件中变量、函数的声明,为什么还要extern关键字,如果我想引用一个全局变量或函数a,我只要直接在源文件中包含#include<xxx.h>(xxx.h包含了a的声明)不就可以了么,为什么还要用extern呢??这个问题一直也是似是而非的困扰着我许多年了,今天上网狠狠查了一下总算小有所获了:头文件首先说下头文件,其 阅读全文
posted @ 2012-11-01 16:07 vanishfan 阅读(1351) 评论(0) 推荐(0) 编辑
摘要: 从编译原理上来说,声明是仅仅告诉编译器,有个某类型的变量会被使用,但是编译器并不会为它分配任何内存。而定义就是分配了内存。对于下面的两句代码:void Func(){int a;int b=1;a=0;}对于第一行代码,编译器不会做任何事,它不会为它在栈中分配一点东西,直到第三句,a=0;时,编译器才会将其压入栈中。而对于int b=0;这一句,编译器就会生成一条指令,为它赋值。如果反汇编,看到的代码可能是这样的:push 1; push 0;当然,并不一定编译器就会样做,也有可能在声明int a时,编译器就会把一个废值入栈,到第三条再为其赋值,这要看编译器的具体取舍,所以,声明... 阅读全文
posted @ 2012-11-01 16:03 vanishfan 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且项目工程庞大复杂,出现了不少问题,其中遇到最多、花费时间最长的问题就是著名的“段错误”(Segmentation Fault)。借此机会系统学习了一下,这里对Linux环境下的段错误做个小结,方便以后同类问题的排查与解决。1. 段错误是什么一句话来说,段错误是指访问的内存超出了系统给这个程序所设定的内存空间,例如访问了不存在的内存地址、访问了系统保护的内存地址、访问了只读的内存地址等等情况。这里贴一个对于“段错误”的准确定义(参考Answers.com):A segmentation fault (often s 阅读全文
posted @ 2012-11-01 15:53 vanishfan 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 测试的体力补充剂的时候使用了date命令修改系统时间来测试跨天的功能,下面列下该命令的一些使用方法:Linux时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称RTC)时钟。系统时钟是指当前Linux Kernel中的时钟,而硬件时钟则是主板上由电池供电的时钟,这个硬件时钟可以在BIOS中进行设置。当Linux启动时,硬件时钟会去读取系统时钟的设置,然后系统时钟就会独立于硬件运作。Linux中的所有命令(包括函数)都是采用的系统时钟设置。在Linux中,用于时钟查看和设置的命令主要有date、hwclock。1、date名称 : date使用权限 : 所有 阅读全文
posted @ 2012-10-26 00:38 vanishfan 阅读(495) 评论(0) 推荐(0) 编辑
上一页 1 ··· 17 18 19 20 21