由论坛上关于不用变量实现STRLEN函数和宏定义2个数据进行交换
来源:互联网 发布:渡边淳一 知乎 编辑:程序博客网 时间:2024/05/19 09:41
最近在C 语言的论坛上看到以下2个题目:
1. 不用局部变量和全局变量实现strlen;
2.有2数据,写一个交换数据的宏;
A:关于不用变量实现问题1,首先想到的是递归,经过综合了解实现方式如:
18 uint strlen(const char *pstr)//采用三目运算
19 {
20
21 return (*pstr == '\0') ?0:strlen(++pstr)+1;
22 }
这个是不用考虑效率的做法,由此找到一篇经典的解释文章:,有什么想法的最好看一下这个博客,真的经典酷毙了!
引申出一个问题:堆栈的位置,和变量的关系,如何计算程序运行时间?用多大内存等,想明白了真的收益匪间希望自己努力搞懂。
A2:1
//verion1:
12 //what about the different type?
13 #define SWAP1(type,a,b) type tmp;tmp=a;a=b;b=tmp;
14 //verion2:
15 //what about the float?
16 #define SWAP2(a,b) a=a^b,b=a^b,a=a^b
个人觉得版本一的比较好!因为类型我们可以定义,版本二如果是浮点数真不能处理
(推荐这个博客,经典!)
0 0
- 由论坛上关于不用变量实现STRLEN函数和宏定义2个数据进行交换
- 不用变量实现strlen函数
- 不用第三个数据进行数据交换
- 不用任何变量实现strlen()函数
- 不用任何变量,实现strlen函数
- 不用中间变量实现strlen函数
- 不用任何中间变量,实现strlen函数
- 不用任何变量,实现strlen函数
- strlen函数实现(局部变量实现和不用局部变量实现)
- 由“不用第三个变量,直接交换两个…
- 不用中间变量实现交换数据
- 不用定义第三个变量来实现两个数的交换
- 交换两个数(不用定义第三个变量哦)
- 不用变量交换2个值
- 不用第三个变量进行交换两数
- 不用第三个变量实现交换两个变量的值
- 【C语言学习】不用局部变量和全局变量实现strlen函数
- 不用额外变量实现c语言strlen函数
- C/C++ 任意大小的二维数组作为函数参数
- 中国码农在硅谷:思乡情节、印度三哥与回国创业
- linux /dev/mem 和 /dev/kmem区别
- fork/clone进程的产生
- 无刷新改变页面内容
- 由论坛上关于不用变量实现STRLEN函数和宏定义2个数据进行交换
- 在Altium Designer中使用AUTOCAD快速制作元件封装
- JAVA学习笔记—review基本知识5[反射与异常]
- android Bitmap拷贝一张图片
- ET540以太网测试仪介绍
- HDU 2579 Dating with girls(2)(BFS)
- 【leetcode】Max Points on a Line
- hdu2055
- 应用安全工作的那些事儿