这是怎么了编译器说:声明语法错误。
源文件:
#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);
///:~
最佳答案
您试图在另一个函数中定义一个函数。这是非法的。为什么将printBinary
的定义放在main
的正文中?
除了C ++ 11中的lambda函数外,C ++还没有本地函数之类的功能。所有功能在命名空间范围内都是“活动的”。
此规则的唯一解决方法是本地类的内联成员函数定义,尽管它也不产生本地函数。