声明语法错误

时间:2012-11-21 16:51:57

标签: c++ console-application

这个有什么问题?编译器说:声明语法错误。

源文件:

#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);
///:~

2 个答案:

答案 0 :(得分:2)

您正在尝试在另一个函数中定义一个函数。这是非法的。为什么要将printBinary的定义放入main的主体?

除了C ++ 11中的lambda函数之外,C ++没有本地函数这样的特性。所有函数都在命名空间范围内“活动”。

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

答案 1 :(得分:1)

您无法在另一个函数(在本例中为main)正文中定义函数。

//编辑:当然,除非它是lambda。