首页 > 解决方案 > 使用宏定义打印格式参数

问题描述

我想定义格式%lld并使用介绍printfsnprintf

#include "stdafx.h"
#include <cstdint>

using Custom_DataType = int64_t;
#define CUSTOM_FORMAT "%lld"

int main()
{
    Custom_DataType  var = 9999999999;
    printf("It works", CUSTOM_FORMAT, var);

    return 0;

}

我想做类似的事情

printf("It works %lld", var);

我想%lldCUSTOM_FORMAT 但是如果我像上面的例子那样做就行不通了

标签: c++

解决方案


您可以使用字符串文字连接。自从

"STRING1" "STRING2"

相当于

"STRING1STRING2"

你可以写:

#define CUSTOM_FORMAT "%lld"
printf("It works " CUSTOM_FORMAT, var); // <-- no comma ;)

推荐阅读