var Company = mongoose.model('Company');
Company.find({companyName: req.query.companyName, position: req.query.position,
areaOfExpertise: req.query.areaOfExpertise, zip: req.query.zip,
country: req.query.country}, function(err, docs) {
res.json(docs);
});
这是我编写的代码,第一个函数计算数字的总和。第二个函数使用循环重复计算数字之和,直到获得一位数字(即数字根)。
但是当我编译代码时,这就是我得到的
5:29:错误:在'{'标记(主要的第一行)之前不允许使用函数定义
22:2:错误:在输入结束时预期'}'(最后一行)
预先感谢一些指导意见。
答案 0 :(得分:2)
正如人们在评论中指出的那样,你不应该在另一个函数中定义一个函数。
int main(){
// This is defined inside of main
int sum_digits(int tiv) {
int sum = 0;
while (tiv > 0) {
我总是鼓励正确的代码缩进,因为这会使这个问题更加明显。
此外,这不是执行函数调用的正确方法:
int root = sum_digit(int num);
您不需要在此处再次包含int
(事实上,这样做在语法上无效) - 从代码的其余部分已经清楚num
是{{} 1}}。
同样的事情:
int
另外,你实际上并没有对while(root > 9) {
sum_digits(int root);
};
的返回值做任何事情,所以这实际上什么都不做。它将是一个无限循环(如果sum_digits
大于9),因为root
的值永远不会改变,或者循环不会运行(如果root
小于9)。
最后一点:为了让这个程序实际执行任何操作,您必须使用root
方法调用某些值的函数。现在,即使你修复了编译错误,程序也无法正常工作,因为你实际上并没有确定你想要root的值,而你实际上并没有真正调用你编写的函数。
答案 1 :(得分:0)
在函数中定义函数不是你应该在c / c ++中做的。我认为gcc支持这一点,但是它不符合标准。
只是在其他功能中声明和定义您的功能。如果要将其隐藏在公共API
中,请使用匿名命名空间