【分享】+#define 让程序移植性更好

[复制链接]
楼主: gaoyang9992006
手机看帖
扫描二维码
随时随地手机跟帖
whisky616| | 2013-12-24 20:39 | 显示全部楼层
好东西啊

使用特权

评论回复
gaoyang9992006|  楼主 | 2013-12-25 18:40 | 显示全部楼层
求小于一个数的最大偶数的方法
/*求实数范围内的最大2倍数*/
#include"stdio.h"
int f(float x);
void main(void)
{
        int y;
        float x;
        printf("请输入一个数字:");
        scanf("%f",&x);
        y=f(x);
        printf("\n%f的最大2倍数是%d",x,y);
        getch();
}

int f(float x)
{
        int i;
        i=((int)(x)-2)/2;
        while(2*i<x) i++;
        if(2*i==x) return 2*i;
        else return 2*i-2;
}
*********************************************************************
上面是普通方法,下面用#define设计

/*求实数范围内的最大2倍数*/
#include"stdio.h"
#define f(x)         (x<0?-2+2*(int)(x/2):2*(int)(x/2))
void main(void)
{
        int y;
        float x;
        printf("请输入一个数字:");
        scanf("%f",&x);
        y=f(x);
        printf("\n%f的最大2倍数是%d",x,y);

        getch();
}


使用特权

评论回复
firstblood| | 2013-12-27 00:30 | 显示全部楼层
预编译指令是以#号开头的代码行。#号必须是该行除了任何空白字符外的第一个字符。#后是指令关键字,在关键字和#号之间允许存在任意个数的空白字符。整行语句构成了一条预处理指令,该指令将在编译器进行编译之前对源代码做某些转换。

使用特权

评论回复
gaoyang9992006|  楼主 | 2013-12-27 08:53 | 显示全部楼层
firstblood 发表于 2013-12-27 00:30
预编译指令是以#号开头的代码行。#号必须是该行除了任何空白字符外的第一个字符。#后是指令关键字,在关键 ...

使用特权

评论回复
shenmayufei| | 2015-8-23 08:32 | 显示全部楼层
写得不错

使用特权

评论回复
映雪—斗牛士| | 2016-12-26 15:22 | 显示全部楼层
马克下,正在搬运51程序到430,学习

使用特权

评论回复
youtome| | 2016-12-26 22:23 | 显示全部楼层
宏定义确实方便很多。

使用特权

评论回复
youtome| | 2016-12-26 22:25 | 显示全部楼层
做代码移植的时候使用宏定义省事多了。

使用特权

评论回复
qiufengsd| | 2016-12-27 17:11 | 显示全部楼层
使用宏定义确实移植程序简单多了。

使用特权

评论回复
qiufengsd| | 2016-12-27 17:12 | 显示全部楼层
不同的处理器移植也方便了。

使用特权

评论回复
qiufengsd| | 2016-12-27 17:18 | 显示全部楼层
#define用的很普遍。

使用特权

评论回复
qiufengsd| | 2016-12-27 17:19 | 显示全部楼层
代码调试的时候很方便。

使用特权

评论回复
maqianqu| | 2016-12-29 21:19 | 显示全部楼层
宏定义确实省去了很多的麻烦。

使用特权

评论回复
maqianqu| | 2016-12-29 21:24 | 显示全部楼层
#define debug 这个用的最多了。

使用特权

评论回复
updownq| | 2016-12-30 21:46 | 显示全部楼层
#define好用。

使用特权

评论回复
updownq| | 2016-12-30 21:47 | 显示全部楼层

确实是,这样直接修改宏定义就能控制IO。

使用特权

评论回复
iamaiqiyi| | 2016-12-31 17:02 | 显示全部楼层
这是移植程序的一个好办法。

使用特权

评论回复
iamaiqiyi| | 2016-12-31 17:05 | 显示全部楼层
#define只能在C语言里面用。

使用特权

评论回复
lzmm| | 2017-1-2 21:07 | 显示全部楼层
#define DEBUG 0
            main()
            {
                #if DEBUG
                    printf("Debugging\n");
                #endif
                    printf("Running\n");
            }

使用特权

评论回复
lzmm| | 2017-1-2 21:11 | 显示全部楼层
#define DEBUG 0
            main()
            {
                #if DEBUG
                    printf("Debugging\n");
                #endif
                    printf("Running\n");
            }

这种调试用的比较多、

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则