我最近偶然发现了这个页面.我对涉及直接参数访问的部分特别感兴趣.
我只是想知道是否有任何方法只执行其中一个函数,具体取决于以下行中n的值:
printf("%n$p", func1, func2, func3 .. funcN);
Run Code Online (Sandbox Code Playgroud)
其中func1,..具有签名为int func1(),int func2()等等.这是一个限制,因为我可能希望函数也返回void.
在上面的行中,只打印了函数的地址; 该函数未被调用..
我甚至尝试使用','(逗号运算符)来实现这一点; 但是在这种情况下,列表中的所有函数都将被调用,并且打印对应于'n'的结果.
有没有办法在printf(..)中实际执行该函数?
谢谢.
不是一行,而是像:
typedef int (*fp)();
fp[] thefuncs = {func1, func2, func3, func4};
printf("%d", fp[n]());
Run Code Online (Sandbox Code Playgroud)
似乎是一个开始.如果函数返回void而不是int,那你打算打印什么?
| 归档时间: |
|
| 查看次数: |
434 次 |
| 最近记录: |