这是怎么了编译器说:声明语法错误。

源文件:

#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 ++还没有本地函数之类的功能。所有功能在命名空间范围内都是“活动的”。

此规则的唯一解决方法是本地类的内联成员函数定义,尽管它也不产生本地函数。

07-26 09:34