用C语言编写函数,传递参数

时间:2018-02-12 10:54:48

标签: c

我找到了一个代码,我想使用它。当我通过./code 20181010 0810从终端运行它时,它运行得很好。 我试图将此代码重写为函数。主要代码由

声明
int main (int argc, char *inp[]) { //some calculations }

所以,我把它改成了:

int calc(int argc, char *inp[]) { //some calculations }

以及带有附加计算的写主代码:

int calc(int argc, char *inp[]);
int main(int argc, char *inp[]) {

    char* c_date;
    char* c_hour;
    time_t timer;
    char buffer1[26], buffer2[26];
    struct tm* tm_info;

    time(&timer);
    tm_info = localtime(&timer);
    strftime(buffer1, 26, "%Y%m%d", tm_info);
    c_date = buffer1;
    strftime(buffer2, 26, "%H%M", tm_info);
    puts(buffer2);
    c_hour = buffer2;

    calc(&c_date, &c_hour);

    return 0;
}

例如,现在20180212 1045它给了我201802112355,什么时候应该给我201802121050。

有什么不对?

1 个答案:

答案 0 :(得分:1)

目前您刚刚复制了main原型。 calc的函数体有什么作用?如果您有main函数的精确副本,那么......

int calc(int argc, char *inp[]);

argc是从命令行传递到程序中的参数数量,inp是参数数组。

您正在&c_date传递argc

但这真的取决于calc函数......

中的内容