Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/135.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 声明语法错误_C++_Console Application - Fatal编程技术网

C++ 声明语法错误

C++ 声明语法错误,c++,console-application,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--) i

这个怎么了?编译器说:声明语法错误

源文件:

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

不能在另一个函数(在本例中为
main
)主体中定义函数


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

不能在另一个函数(在本例中为
main
)主体中定义函数


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

您试图在另一个函数中定义一个函数。这是违法的。为什么要将
printBinary
的定义放在
main
的主体中

除了C++ 11中的lambda函数外,C++没有局部函数的特征。所有函数都在命名空间范围内“活动”


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

您试图在另一个函数中定义一个函数。这是违法的。为什么要将
printBinary
的定义放在
main
的主体中

除了C++ 11中的lambda函数外,C++没有局部函数的特征。所有函数都在命名空间范围内“活动”


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

您实际上没有
**源文件**
部分,是吗?此外,还需要在其他函数之外定义函数。请考虑阅读介绍性C++书籍。看起来这会有很大帮助。您实际上没有
**源文件**
部分,是吗?此外,还需要在其他函数之外定义函数。请考虑阅读介绍性C++书籍。似乎这会有很大帮助。在其他函数中声明函数一直是完全合法的。我现在查看我的引用,但我想你是对的。在其他函数中声明函数一直是完全合法的。我现在查看我的引用,但我想你是对的。
void printBinary(const unsigned char val);
///:~