根据评论我已将主题更改为pro c代码和i 撤回它是C ++语法的说法。保持标签相同;就像我一样 仍然希望它类似于c ++,没有Pro C标签可用请耐心等待 用它。
我想这是一个非常新的蜜蜂问题。但由于我没有足够的时间学习C ++文档,如果我能得到帮助,我将不胜感激。
我正致力于转换类似于C ++语法的pro * C代码。
以下是代码段
#include <stdio.h>
#include <string.h>
#include <prg_codes.h>
#include <prg_defines.h>
typedef struct
{
int errorflag;
int slot;
} option_info;
int calc_options(currArgc,currArgv,options)
int currArgc;
char *currArgv[];
option_info *options;
{
int optChar;
int invopt=0;
while ((optChar = getopt(currArgc, currArgv, ":s:")) != -1 && !(invopt))
{}
/* other commands */
}
void main(int argc, char *argv[])
{
option_info options;
int rc = 0;
rc=calc_options(argc,argv,&options);
/* other commands */
}
我的问题是
option_info
被定义为结构,然后作为函数定义,并从main调用。好吗?它是如何工作的?
option_info
位于函数calc_options
中。因为option_info似乎使用了calc_options中定义的参数。
或者calc_options
正文是写在include部分的任何其他文件的其他地方吗?
答案 0 :(得分:2)
此代码段采用古老的K&amp; R C语法,它早于ANSI C.然后它的缩进奇怪,这使得它看起来就像你描述的那样,但事实并非如此。 calc_options
是带有三个参数的函数定义,其中第三个是指向typedef option_info的指针options
。
这在ANSI C语法中是相同的,因此更容易阅读:
int calc_options(int currArgc, char *currArgv[], option_info *options)
{
int optChar;
int invopt=0;
while ((optChar = getopt(currArgc, currArgv, ":s:")) != -1 && !(invopt))
{}
/* other commands */
}
“option_info被定义为结构”是(以及结构的typedef)
“然后作为一个函数并从main调用”。 否强>
“没事吗?” 是(但应更改为ANSI语法)
“它是如何运作的?” 相当不错
“在函数calc_options中是否有option_info?” 这是第三个参数options
“因为option_info似乎使用了calc_options中定义的参数。” 是参数的类型options
“或者calc_options正文写在include部分的任何其他文件的其他地方?”的都能跟得上强>