博主這段時間在寫一些C程式的代碼,由於以前對C不是瞭解很多,故遇到很多瓶頸,當然,其中也有很多 有趣的方法可以利用以解決這些難題,下面這個問題就是博主遇到的一個麻煩。
聲明了 int ,long 型等局部變數,在利用一些方法給這些變數賦值之後,想判斷這些變數是不是真的被賦初值了,怎麼辦?
當然,如果你不賦值給局部變數,這樣會導致整個程式的崩潰,因為,它的內容被系統指向了垃圾內 存。
下面我們看一段代碼:
#include <stdio.h> #include <string.h> #include <stdlib.h> int globle_value; int my_sum(int value1, int value2); long my_sub(long value1, long value2); int main(void) { int auto_value_int; long auto_value_long; auto_value_int = my_sum(15, 9); auto_value_long = my_sub(12587, 22587); printf("globle_value : %d\n", globle_value); printf("auto_value_int : %d\n", auto_value_int); printf("auto_value_long : %ld\n", auto_value_long); system("PAUSE"); return 0; } int my_sum(int value1, int value2) { return value1 + value2; } long my_sub(long value1, long value2) { return value2 - value1; }
說明:
我首先定義了一個全域變數,當然,這會由系統自動初始化為0,但是兩個不同類型的局部 變數並沒有初始化,而是通過兩個函數調用賦的值。可是,現在,想一個問題,兩個函數調用是不是執行成功 了呢?如果不成功,還是沒有達到我所想要的效果,這怎麼去判斷呢?
開始,博主也是沒想到好的解 決辦法,也查閱別人怎麼去做,沒有太多的收穫,可是,博主想到了C 語言中的一個函數--sprintf ,它可以 把不同類型變數存放到字元數組中,我們之後可以判斷,字元數組是否為空白就可以了。