有段代码看不懂,请指教,
if (tcsetattr(TtyFd, TCSANOW, &TtyAttr) < 0)
Error("Unable to set tty");
for (;;)
{
unsigned char Char = 0;
fd_set ReadSetFD;
void OutputStdChar(FILE *File) {
char Buffer[10];
int Len = sprintf(Buffer, OutputHex ? "%.2X " : "%c", Char);
fwrite(Buffer, 1, Len, File);
}
FD_ZERO(&ReadSetFD);
FD_SET(CommFd, &ReadSetFD);
FD_SET( TtyFd, &ReadSetFD);
....//省略
}
================
红色部分不解???
OutputStdChar是函数吗?
------解决方案--------------------啊,是函数,gcc允许函数嵌套定义。
------解决方案--------------------g++就不支持这种写法了。
------解决方案--------------------是一个函数,根据c语言编程里边的描述
Each function definition has the form
(每一个函数的形式都是如下这样)
return-type function-name(argument declarations)
{
declarations and statements
}
Various parts may be absent; a minimal function is
(有些部分可能略去了;最简化的函数是下面这样)
dummy() {}
which does nothing and returns nothing. A do-nothing function like this is sometimes
useful as a place holder during program development. If the return type is omitted, int
is assumed.
由上可见,你标注的红色部分对于一个函数而言,已经“五脏俱全”了。
你可以反汇编一下,相当于一个这个大的C函数有那么一段私有的代码,功能又比较独立,就成了函数。。