tft每日頭條

 > 科技

 > c語言支持函數的默認參數

c語言支持函數的默認參數

科技 更新时间:2024-07-21 12:18:45

c語言支持函數的默認參數?C語言中沒有參數默認值的概念,但其實可以利用宏來模拟參數的默認值;,我來為大家講解一下關于c語言支持函數的默認參數?跟着小編一起來看一看吧!

c語言支持函數的默認參數(C語言函數的默認參數)1

c語言支持函數的默認參數

C語言中沒有參數默認值的概念,但其實可以利用宏來模拟參數的默認值;

我們之前介紹過可變參數宏與逗号運算符,将兩者相結合的話可以定義出以下形式的宏:

#define func(...) __func((default, ##__VA_ARGS__))

當在func()裡不填寫任何内容的時候,正常情況下宏展開後會是func((default,)),但由于##__VA_ARGS__會将前面多餘的逗号忽略,所以宏展開後就相當于__func((default));

當在func()括号裡填寫有效值的時候,根據逗号運算符的值等于最後一個表達式的值的性質,宏會被展開為__func((##__VA_ARGS__))既default被丢棄,傳入的值隻有我們填寫的内容,通過這個技巧我們就可以設計出一個帶有默認參數的函數。


示例:

定義一個函數默認參數為0xff,不傳任何參數的時候打印0xff,傳入有效值的時候就打印我們傳入的内容;

#include <stdio.h> #define func(...) __func((0xff, ##__VA_ARGS__)) void __func(int value) { printf("value: %d\r\n", value); } void main(void) { func(); func(100); }

輸出:

value: 255 value: 100

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved