c語言雙井號
⑴ c語言如何輸出井號
printf("%c",'#');
printf("%s","#");
printf("%c",'@');
printf("%s","@");
上述輸出列印行數%c是以字元形式列印輸出,%s是以字元形式列印
承接單片機開發項目
⑵ c語言中如何輸入雙引號
c語言中用'"'表示一個雙引號。
char*s="Hesays,"OK."";// 最前和最後的雙引號是定界符,中間的兩處"表示雙引號
puts(s);
就可以輸出Hesays,"OK."
轉義字元
所有的ASCII碼都可以用「」加數字(一般是8進制數字)來表示。而C中定義了一些字母前加""來表示常見的那些不能顯示的ASCII字元,如 , , 等,就稱為轉義字元,因為後面的字元,都不是它本來的ASCII字元意思了。
其中:x表示後面的字元是十六進制數, 表示後面的字元是八進制數。
注意:在TurboC2.0中,字元型常量表示數的范圍是-128到127,除非你把它聲明為unsigned,這樣就是0到255。
上面我們見到的x, ,a等等都是叫轉義字元,它告訴編譯器需要用特殊的方式進行處理。
⑶ c語言的 _##name意思
## 連接符號由兩個井號組成,其功能是在帶參數的宏定義中將兩個子串(token)聯接起來,從而形成一個新的子串。但它不可以是第一個或者最後一個子串。所謂的子串(token)就是指編譯器能夠識別的最小語法單元。
簡單的說,「##」是一種分隔連接方式,它的作用是先分隔,然後進行強制連接。其中,分隔的作用類似於空格。我們知道在普通的宏定義中,預處理器一般把空格解釋成分段標志,對於每一段和前面比較,相同的就被替換。但是這樣做的結果是,被替換段之間存在一些空格。如果我們不希望出現這些空格,就可以通過添加一些 ##來替代空格。
舉列 – 試比較下述幾個宏定義的區別
#define A1(name, type) type name_##type##_type 或
#define A2(name, type) type name##_##type##_type
A1(a1, int);
A2(a1, int);
解釋:
1) 在第一個宏定義中,」name」和第一個」_」之間,以及第2個」_」和第二個 」type」之間沒有被分隔,所以預處理器會把name_##type##_type解釋成3段:「name_」、「type」、以及「_type」,這中間只有「type」是在宏前面出現過
的,所以它可以被宏替換。
2) 而在第二個宏定義中,「name」和第一個「_」之間也被分隔了,所以預處理器會把name##_##type##_type解釋成4段:「name」、「_」、「type」以及「_type」,這其間,就有兩個可以被宏替換了。
3) A1和A2的定義也可以如下:
#define A1(name, type) type name_ ##type ##_type
<##前面隨意加上一些空格>
#define A2(name, type) type name ##_ ##type ##_type
結果是## 會把前面的空格去掉完成強連接,得到和上面結果相同的宏定義。
或再比如
#define LINK_MULTIPLE(a,b,c,d) a##_##b##_##c##_##d
typedef struct _record_type LINK_MULTIPLE(name,company,position,salary);
// 這里這個語句將展開為:
// typedef struct _record_type name_company_position_salary;
詳細使用方法,可以參考如下博客內容:http://blog.sina.com.cn/s/blog_7d9463b20100xp5t.html
⑷ 用C語言編程怎樣輸入井號
Shift+3,3是鍵盤上方的數字。
#####