鱼C论坛

 找回密码
 立即注册
查看: 1442|回复: 1

[已解决]函数定义

[复制链接]
发表于 2021-5-29 21:25:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 rt3 于 2021-5-29 21:26 编辑

我发现代码中的第9行用第7-8行代替也能通过编译,那7-8行这种用法是有什么好处嘛?谢谢
#include<stdio.h> 
#include <readline/readline.h>
#include <readline/history.h> 
#include <stdlib.h>
#include <unistd.h>

int com_cd PARAMS((char *));
int com_cd (arg) char *arg;
//int com_cd(char *arg)
{
        if(chdir(arg)==-1){
        perror(arg);
        return 1;
        }
}

int main(){
        char *path="/home/";
        int a=com_cd(path);
        switch(a){
                case 0:
                        puts("succeed.\n");
                        break;
                default:
                        printf("failed.a==%d\n",a);
                        break; 
        }
}
编译命令
gcc main.c -g -lreadline -lhistory -o main.run
最佳答案
2021-5-29 22:05:40
这是古老的 K&R C 语法
PARAMS 是一个宏,下面是这个宏的定义,在 bash/tilde.h 里面,第 34 行开始
#if !defined (PARAMS)
#  if defined (__STDC__) || defined (__GNUC__) || defined (__cplusplus)
#    define PARAMS(protos) protos
#  else
#    define PARAMS(protos) ()
#  endif
#endif

7行的 int com_cd PARAMS((char *));
根据情况会替换成下面的两种
int com_cd (char *);
int com_cd ();

第一种是标准C的写法,如果你当前的编译环境是标准C的话,就会被替换成第一种
第二种是K&R C 的写法,如果你当前的编译环境是K&R C的话,就会被替换成第二种

8 行 int com_cd (arg) char *arg;
这是 K&R C 的写法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-5-29 22:05:40 | 显示全部楼层    本楼为最佳答案   
这是古老的 K&R C 语法
PARAMS 是一个宏,下面是这个宏的定义,在 bash/tilde.h 里面,第 34 行开始
#if !defined (PARAMS)
#  if defined (__STDC__) || defined (__GNUC__) || defined (__cplusplus)
#    define PARAMS(protos) protos
#  else
#    define PARAMS(protos) ()
#  endif
#endif

7行的 int com_cd PARAMS((char *));
根据情况会替换成下面的两种
int com_cd (char *);
int com_cd ();

第一种是标准C的写法,如果你当前的编译环境是标准C的话,就会被替换成第一种
第二种是K&R C 的写法,如果你当前的编译环境是K&R C的话,就会被替换成第二种

8 行 int com_cd (arg) char *arg;
这是 K&R C 的写法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-21 13:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表