C語言的一些特殊用法————————【Badboy】,c語言badboy
一:特殊的字串宏
[cpp]
#define A(x) T_##x
#define B(x) #@x
#define C(x) #x
我們假設x=1, 則上面的宏定義會被解釋成以下的樣子
A(1)------>T_1
B(1)------>'1'
C(1)------>"1"
這些主要用於一些字串處理函數和參數命名上,並不複雜,不過知者甚少
二:屏蔽無用參數警告
[cpp]
#define UNUSED_PARAM(p) ((void)p)
這個用來屏蔽無效參數的
比如
[cpp] view plaincopy
void a(int x1, int x2)
{
// do nothing
}
這樣會彈出警告,x1,x2是無效的參數
但是,寫成這樣,就沒關係了
[cpp]
void a(int x1, int x2)
{
UNUSED_PARAM(x1);
UNUSED_PARAM(x2);
}
三: 想不出來了,佔位,等睡醒了在想
宏的更常見用法我就不寫了,比如標頭檔的保衛宏,版本定義宏,靈活使用確實事半功倍。
單片機編程中,使用c語言的一些特殊用法與使用?
如你所述你的興趣在軟體而不是硬體,電子資訊工程這個專業最大的特色是軟硬體相結合,即使你不大喜歡複雜的電路,也應該具備不錯的電路方面的基礎,這是必須的,硬體基礎不紮實,搞好軟體就無從談起了。當然我指的是嵌入式系統,資訊與訊號處理,模式識別之類的軟體的開發,也是電信工的看家本領和主要方向。
當然如果你想要脫離硬體搞純軟體開發,那麼電信工專業就沒有優勢了,因為電信工專業軟體學得再好也難以比得上軟體和電腦專業的,因為我就是電信工專業出身,實驗室也有電腦和軟體的同學,這一點深有體會,學習的課程和得到的系統的鍛煉差異太大,編程思想和習慣還有掌握的演算法確實無法和他們相比。所以電信工最大優勢是軟硬體結合,做基於硬體的軟體開發,也就是上述幾個方向。
C++的確比較難,但如果不用來做物件導向的可視化程式設計的話,就比較簡單了,只要有C的基礎,學習起來就得心應手。如果是做一些可視化程式開發,無論是API還是MFC的,不是能速成的,要慢慢多多練習與積累體會。如果想要成為單片機高手,學好C就可以了,而且都是基本的C,指標之類的都很少用到的。C++如果有興趣的話可以深入學習,畢竟是一個很好的今後搞項目的資本和優勢,當然是學好專業課的前提下。其實電信工的項目的上位機程式一般VB就可以完成,VB上手和學習都比較容易。
C語言中的一些特殊函數
c語言的沒有fmax()和power()函數
fmax()求最大值函數自己程式實現
c語言中有pow(a,b)這個函數 功能:求a的b次方。需包含標頭檔 math.h
參考資料:特殊函數