这个有什么问题?编译器说:声明语法错误。
源文件:
#include<iostream>
using namespace std;
int main(int argc, char **argv) {
void printBinary(const unsigned char val) {
//printBinary() func. outputs byte in binary
for(int i=7;i>=0;i--)
if(val & (1<<i)) //generates a single bit with offset position
std::cout<<"1";
else
std::cout<<"0"
}
return 0;
}///:~
标题文件:
void printBinary(const unsigned char val);
///:~
答案 0 :(得分:2)
您正在尝试在另一个函数中定义一个函数。这是非法的。为什么要将printBinary
的定义放入main
的主体?
除了C ++ 11中的lambda函数之外,C ++没有本地函数这样的特性。所有函数都在命名空间范围内“活动”。
此规则的唯一解决方法是本地类的内联成员函数定义,但它也不会生成本地函数。
答案 1 :(得分:1)
您无法在另一个函数(在本例中为main
)正文中定义函数。
//编辑:当然,除非它是lambda。