| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1229 人关注过本帖
标题:请大神帮忙!我的这个程序哪里有问题,怎么改???
只看楼主 加入收藏
学初
Rank: 2
等 级:论坛游民
帖 子:11
专家分:27
注 册:2016-5-12
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
请大神帮忙!我的这个程序哪里有问题,怎么改???
/*定义一个函数式宏swap(type,a,b),以使type型的两个值交换  */

#include "stdio.h"
#define  swap(type,a,b)  (c=a;a=b;b=c;)

int main(void)
{
    int a,b,c;
 
    printf("a:");  scanf("%d",&a);
    printf("b:");  scanf("%d",&b);

    swap(int,a,b)

    printf("a=%d,b=%d\n",a,b);


    return 0;
}
搜索更多相关主题的帖子: include return 
2016-05-17 15:48
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9031
专家分:54061
注 册:2011-1-18
收藏
得分:0 
你想要的是 #define  swap(type,a,b)  {type c=a;a=b;b=c;} 吗?一点儿也不好
2016-05-17 16:01
学初
Rank: 2
等 级:论坛游民
帖 子:11
专家分:27
注 册:2016-5-12
收藏
得分:0 
那应该怎么改好啊??
2016-05-17 16:03
学初
Rank: 2
等 级:论坛游民
帖 子:11
专家分:27
注 册:2016-5-12
收藏
得分:0 
回复 2楼 rjsp
那该怎么改好呢???不懂啊。。。
2016-05-17 16:05
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9031
专家分:54061
注 册:2011-1-18
收藏
得分:5 
随便胡胡,交个作业的话,可以用gcc扩展typeof
程序代码:
#include <stdio.h>

#define SWAP(a,b)  do{ __typeof(a) t=(a); (a)=(b); (b)=t; } while(0)

int main(void)
{
    int a=1, b=2;
    SWAP( a, b );
    printf( "a=%d,b=%d\n", a, b );

    return 0;
}

如果正式一些的话,得这么写
程序代码:
#include <stdio.h>
#include <string.h>

void swap_iterator( void *left, void *right, size_t len )
{
    char tmp[len];
    memcpy( tmp, left, len );
    memcpy( left, right, len );
    memcpy( right, tmp, len );
}
#define SWAP(a,b) swap_iterator(&a,&b,sizeof(a))

int main(void)
{
    int a=1, b=2;
    SWAP( a, b );
    printf( "a=%d,b=%d\n", a, b );

    return 0;
}


2016-05-17 16:25
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:15 
回复 4楼 学初
#include <stdio.h>
#define swap {c=*a;*a=*b;*b=c;}
void _swap(int *a,int *b)
{
    int c=0;
    swap;
}
int main(void)
{
    int a,b;
    printf("a:");
    scanf("%d",&a);
    printf("\nb:");
    scanf("%d",&b);
    _swap(&a,&b);
    printf("a=%d,b=%d\n",a,b);
    return 0;
}
2016-05-17 16:31
学初
Rank: 2
等 级:论坛游民
帖 子:11
专家分:27
注 册:2016-5-12
收藏
得分:0 
回复 5楼 rjsp
好的,我试试,谢谢大神!
2016-05-17 16:32
快速回复:请大神帮忙!我的这个程序哪里有问题,怎么改???
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.061268 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved