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