01 2013 档案

摘要:void * 及Void的用法void含义 void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。 void几乎只有“注释”和限制程序的作用,定义一个void变量没有意义,不妨试着定义: void a; 这行语句编译时会出错,提示“illegal use of type 'void'”。不过,即使void a的编译不会出错,它也没有任何实际意义。 void真正发挥的作用在于: (1) 对函数返回的限定; (2) 对函数参数的限定。 众所周知,如果指针p1和p2的类型相同,那么我们可以直接在p1和p2间互相赋值;如果p1和p2指向不同 阅读全文
posted @ 2013-01-24 23:22 jeremyatchina 阅读(242) 评论(0) 推荐(0)
摘要:系统级语言C语言的国际标准,完整版。函式原型: int printf ( const char * format, ... );引數說明:%[flags][width][.precision][length]specifier%[旗標][寬度][.精度][長度修飾]資料型態1. 資料型態(%[旗標][寬度][.精度][長度修飾]資料型態)必填欄位(1.1) 字元/字串%c, %C : 字元, char c; %s : 字元陣列, char buffer[MAX_PATH];%S : 字元陣列(Unicode), wchar buffer[MAX_PATH];[註] %C / %S 並未被收在標 阅读全文
posted @ 2013-01-11 20:34 jeremyatchina 阅读(500) 评论(0) 推荐(0)
摘要:dmesg cat /var/log/messages more /proc/kmsg 修改proc/sys/kernel/printk在kernel 中模組如果要列印出訊息,由於不能連結一般函式庫,只能與核心的函式庫連結。因此printf() 就不能使用了,只能使用printk()。EX:printk(KERN_DEBUG "Here I am: %s:%i\n", __FILE__, __LINE__);printk(KERN_CRIT "I'm trashed; giving up on %p\n", ptr); 38#define KER 阅读全文
posted @ 2013-01-06 20:33 jeremyatchina 阅读(401) 评论(2) 推荐(0)
摘要:看到網路上一篇blog一個問題,引發一群網友的討論。Q:寫一個函數計算當參數為 n(n很大) 時的值 1-2+3-4+5-6+7……+n這是個常見的級數問題,我們必須化簡成closed form 來得到最佳的效率。一般解法: 主要使用 迴圈long fn(long n) { long temp=0; int i,flag=1; if(n<=0) { printf("error: n must > 0); exit(1); } for(i=1;i<=n;i++) { temp=temp+flag*i; flag=(-1)*flag; } return tem... 阅读全文
posted @ 2013-01-03 22:54 jeremyatchina 阅读(426) 评论(0) 推荐(0)
摘要:vi 是 unix 家族下最功能強大的文字編輯器,讓用戶只要使用一個鍵盤就可以完成所有的編輯。而vim則是 vi 的加強版,甚至在Windows上也找得到 vim 的芳蹤。但 vi/vim 眾多的指令卻經常令初學者卻步,以下就是我所整理出來那些令人卻步的指令:編輯模式指令說明*i在游標位置進入編輯模式I在游標行的第一個非空白字元進入編輯模式*a在游標位置後進入編輯模式*A在游標行的最後一個字元進入編輯模式*o向下新增一行,並進入編輯模式O向上新增一行,並進入編輯模式cc刪除游標行,並進入編輯模式*[ESC]取消指令或退出編輯模式游標移動指令說明*gg移到第一行*G移到最後一行*行數→ G移動到 阅读全文
posted @ 2013-01-03 22:46 jeremyatchina 阅读(260) 评论(0) 推荐(0)
摘要:warning: ISO C90 forbids mixed declarations and code通常會出現這種warning message是因為變數的宣告太後面在宣告變數的前面不可以有其他的執行運作。但是有執行所用到的變數要距離越近,執行的效率越好的觀點但個人覺得在Interpreter Language而言會比較有作用,因為對C來說,Code Optimization後,應該不會有這個議題存在。 阅读全文
posted @ 2013-01-02 15:55 jeremyatchina 阅读(418) 评论(0) 推荐(0)
摘要:#include <stdio.h>#include <errno.h> int main (){ FILE * file; file=fopen ("exist.not","rb"); if (file==NULL) { perror("perror"); printf("strerror(errno)=%s\n", strerror(errno)); } else fclose (file); return 0;} 当linux中的C api函数发生异常时,一般会将errno变量(需in 阅读全文
posted @ 2013-01-02 00:09 jeremyatchina 阅读(535) 评论(0) 推荐(0)