为了使我的代码更简洁,我可以做一些像
这样的事情int f(int const x, y, z), g(int const x, y, z);
声明函数f和g,每个函数取三个int const参数?
修改: 也许这是一个更好的例子:
int f(int const a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z);
如果在每个字母之前放置int const,那怎么会更简洁和可读?
答案 0 :(得分:4)
对于C代码,如果你真的坚持它,你可以使用旧式(K& R)函数头:
typedef int const cint;
int f(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z)
cint a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z;
{
// function body here
}
请注意,我不推荐这个 - 而且C ++不支持这个,所以你可以使用它的唯一方法是在C中编译函数本身,并包含一个extern "C"
声明从C ++访问它。
const
(即,应用于参数本身,而不是它指向或引用的内容)完全没有意义,而且(IMO)在任何情况下都是一个糟糕的想法。
答案 1 :(得分:2)
使用Boost预处理器,并且考虑到你并不关心逐个描述函数参数(但不是你问题的重点),你可以使用以下技巧:
#include <boost/preprocessor/repetition/enum_params.hpp>
int f( BOOST_PP_ENUM_PARAMS(26, int const arg) );
但不要忘记,不采用所需的时间和空间来描述函数参数的整个想法是非常危险的。
答案 2 :(得分:1)
答案 3 :(得分:0)
没有:)
顺便说一下,即使有可能,也会有人会这样做。
另外,C ++并不以其简洁而闻名。
答案 4 :(得分:0)
据我所知,没有。我认为这会使你的代码更加“简洁”,就像删除注释和空格一样。它会让它看起来更短,但它的可读性会低得多。 我喜欢这样一个事实,即每个函数声明必须非常明确且在C ++中是个体的(尽管我从未遇到过允许您声明多个函数的语言)。 所以,简而言之,没有。
答案 5 :(得分:0)