gpt4 book ai didi

c - 有没有办法将 printf 字母 (%c, %d) 作为函数参数传递?

转载 作者:太空宇宙 更新时间:2023-11-04 01:19:26 24 4
gpt4 key购买 nike

请考虑以下代码:

#include <stdio.h>

void printStrGeneric(void *, int, int);
void printNumGeneric(void *, int, int);

int main()
{

int intArray[] = { 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85 };

printNumGeneric(intArray, sizeof(intArray), sizeof(int));
printStrGeneric(intArray, sizeof(intArray), sizeof(int));
puts("");

short shortArray[] = { 65, 66, 67, 68, 69, 70, 71, 72, 73, 74 };

printNumGeneric(shortArray, sizeof(shortArray), sizeof(short));
printStrGeneric(shortArray, sizeof(shortArray), sizeof(short));
puts("");

return 0;
}

void printStrGeneric(void *object, int size, int elem_size)
{
char *p = (char *) object;
while (p < (char *) object + size) {
printf("%c\t", *p);
p += elem_size;
}
puts("");
}

void printNumGeneric(void *object, int size, int elem_size)
{
char *p = (char *) object;
while (p < (char *) object + size) {
printf("%d\t", *p);
p += elem_size;
}
puts("");
}

– 鉴于函数 printStrGenericprintNumGeneric 几乎相同(除了 printf 字母),我想知道它是否在任何有可能只有 1 个函数,并将 printf 字母(%c%d)作为参数传递给函数吗?

最佳答案

了解以下用法:

  1. va_args

  2. 语法:格式,...

这两者的组合允许您将格式传递给函数,并根据需要进行处理。

这是一个非常简单的解释:https://www.eskimo.com/~scs/cclass/int/sx11b.html

关于c - 有没有办法将 printf 字母 (%c, %d) 作为函数参数传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47822707/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com