記一筆 va_list

#include <bits/stdc++.h>

using namespace std;

void write(const char* format, ...) {
    va_list vaList;
    va_start(vaList, format);
    vprintf(format, vaList);
    va_end(vaList);
}

// __VA_ARGS__ 表示一個可變參數宏,而 ## 則是當 可變參數數量爲 0 時,去除 format 後面的逗號
#define LOG(format, ...) write(format, ##__VA_ARGS__)

int main() {
    LOG("hahaha\n");

    int a = 0;
    LOG("a: %d\n", a);

    char s[] = "xxxaskok";
    LOG("s: %s\n", s);
    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章