程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 第一篇---------c語言的一些基礎零碎知識所思所想,---------c所思

第一篇---------c語言的一些基礎零碎知識所思所想,---------c所思

編輯:關於C語言

第一篇---------c語言的一些基礎零碎知識所思所想,---------c所思


       首先,我的博客地址是http://www.cnblogs.com/naiwenmoer/,這也是我第一篇博客,以前沒想過寫博客,現在有幸加入這個大神遍地飛的園子,還請各位大神多多指教了!  

        c語言作為經典語言,這裡不再多說了.咱從基礎一起探討吧!

        一. 定義一個整型,如果作為局部變量,沒有初始化的情況下,它是一個隨機的值的,一般情況下輸出會是0,但這個0是作為垃圾值的;而如果作為全局變量,沒有初始化的情況下,它的值是0.    

      二.我們都知道,static是用於聲明一個內部全局變量,在使用static的時候,並不會在內存中重新開辟一塊存儲空間的,那麼它的優越性是時候發揮作用了,如果當某個方法的調用頻率非常高,而該方法中有寫變量的值是固定不變的,如果我們使用static來修飾該變量,讓該變量只開辟一次存儲空間,在運行過程中就可以提高程序的效率和性能了.

         三.帶參數的宏定義一些細節.如果說我們使用一個帶參數的宏定義去做一些簡單的運算,少量的代碼可能顯示不出他的優越性,但在成千上萬行代碼中,能為整個軟件程序運行提高不少性能勒!                  例如一個簡單的例子,int a = 10;int b = 20;計算結果可以int res = a + b;使用宏定義應該這樣的:在main函數外面先#define SUM(v1,v2)(v1+v2)            在main函數裡面直接實現    int res = SUM(a,b);    看似沒有區別,從運行原理來看,宏定義讓程序運行的直接拿到的是(10 + 20)去運算,而沒有使用宏定義要先讓a和b分別賦值後再運算,是多走了一步"彎路"的.

         四.提到宏,應該會想到typedef,define和typedef中有一些細節,可能有些朋友不會注意到,如果說要給指針類型變量"起別名",當使用define的時候會有什麼"意外"發生呢?   好,我先來一個#defiine MY_STRING char *                 在main函數裡面調用MY_STRING name1,name2;   會出現什麼後果呢,結果告訴你,會有bug的. 原因是因為MY_STRING name1,name2====char *name1;char name2;  我個人通俗點說,就是name2"吃不到*",作為指針變量,沒有*運行當然會報錯了!

         好了!時候不早了,就這樣了,有空想到什麼就再寫點什麼了!有不足之處還望各位看官指出,感激不盡!

 

 


 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved