Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/143.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++ Visual Studio中不带参数名的函数原型和不带数据类型的函数声明_C++_Visual Studio 2010_Function Prototypes - Fatal编程技术网

C++ Visual Studio中不带参数名的函数原型和不带数据类型的函数声明

C++ Visual Studio中不带参数名的函数原型和不带数据类型的函数声明,c++,visual-studio-2010,function-prototypes,C++,Visual Studio 2010,Function Prototypes,下午好 我的任务是在VisualStudio2010中实现似乎是为C99编写的代码。我已经研究了许多C99/Visual Studio兼容性线程,但没有发现任何与修复问题相关的内容 基本上,我必须移植的代码具有以下方式编写的函数原型和声明: void myfunc(int, char*); //Prototype void myfunc(variable1, pointer1) //Declaration { ;//... } 但VisualStudio2010只愿意接受 void m

下午好

我的任务是在VisualStudio2010中实现似乎是为C99编写的代码。我已经研究了许多C99/Visual Studio兼容性线程,但没有发现任何与修复问题相关的内容

基本上,我必须移植的代码具有以下方式编写的函数原型和声明:

void myfunc(int, char*); //Prototype

void myfunc(variable1, pointer1) //Declaration
{
   ;//...
}
但VisualStudio2010只愿意接受

void myfunc(int variable1, char* pointer1); //Prototype

void myfunc(int variable1, char* pointer1) //Declaration
{
   ;//...
}
我不能100%确定这是否是C99兼容性问题或某些过时的编码实践,但源文件正在由第三方不断更新,我需要避免更改其中的任何内容(例如重命名每个函数),由于有一个插件编译器,我也需要使用VisualStudio2010。是否有允许这种类型的函数声明的选项


谢谢,

据我所知,MS VC++不支持C99

至于函数定义thsi定义

void myfunc(variable1, pointer1) //Declaration
{
   ;//...
}
即使对于C89也是无效的。在这个标题之后

void myfunc(variable1, pointer1)
在开口支撑之前,应进行标识符声明。 如果存在这些声明,并且您只是输入了一个拼写错误,那么您可以使用MS VC++2010。但是您必须将代码编译为C代码

根据C标准

6如果声明器包含标识符列表,则 声明列表应至少有一个声明人 声明人应仅声明标识符列表中的标识符, 应声明标识符列表中的每个标识符。一 声明为typedef名称的标识符不得重新声明为 参数声明清单中的声明不得包含任何内容 除寄存器之外的存储类说明符,不进行初始化


<>这是C和C++的区别。

实际上,在C++中,请参阅下面的修正注释:

void myfunc(int variable1, char* pointer1); // Declaration

void myfunc(int variable1, char* pointer1)  // Definition
{
   // ...
}

我知道你说的是老式的C语法。不,没有标识符声明。否则,代码应该在Linux中的Eclipse下编译。@user2056201我添加了一段来自C标准的引用。看起来你的代码很旧。