Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 基于编译时参数在C中重复代码_C++_C - Fatal编程技术网

C++ 基于编译时参数在C中重复代码

C++ 基于编译时参数在C中重复代码,c++,c,C++,C,假设我有一个C代码,比如说,printf(“a”)如何根据某个编译时参数重复N次,其中N在该编译器参数中传递。e、 ggcc-D打印=N 类似地,是否有一种方法可以根据编译时参数/标志传递循环的范围?只需将其放入循环中: for (int i = 0; i < print; ++i) printf("A"); for(int i=0;i你能澄清吗?第二个是容易的(int i=0;i 代码>第一个可以用C++完成,但不一定要C。请参阅C和C++是不同的语言,并且需要

假设我有一个C代码,比如说,
printf(“a”)如何根据某个编译时参数重复N次,其中N在该编译器参数中传递。e、 g
gcc-D打印=N


类似地,是否有一种方法可以根据编译时参数/标志传递循环的范围?

只需将其放入循环中:

for (int i = 0; i < print; ++i)
  printf("A");
for(int i=0;i
print
符号将被编译器命令行上指定的值替换(例如
-Dprint=5
),因此循环将运行所需的次数。通过添加另一个
-D
定义以使用不同的范围,可以对起始值
0
执行相同的操作

然而,
print
并不是这样一个宏的好名字;惯例是在所有大写字母中使用较长的名称,以避免与函数名等发生冲突

如何根据某个编译时参数重复N次,其中N在该编译器参数中传递

只需生成一个C文件,也许使用另一个脚本(或者,您可以编写,C++或甚至C)来生成它。相应地配置您的工具(例如或)

请记住,您可以包含生成的文件

有关(C文件生成器)的示例,请参见或

另见(摘自已故雅克·皮特拉特)


你也可以对.< /p>你能澄清吗?第二个是容易的<代码>(int i=0;i <打印;+i)…< />代码>第一个可以用C++完成,但不一定要C。请参阅C和C++是不同的语言,并且需要对这个问题有不同的答案。