- 论坛徽章:
- 0
|
出现频率最高的笔试题strcpy写法
[quote]原帖由 "Joran"][/quote 发表:
引用有错误,贴这种教课书式的代码,还是得严谨些。
Linux 下的定义是这样的:
/usr/lib/string.h
- string.h:
- char *strcpy (char *__restrict __dest, __const char *__restrict __src)
- __THROW;
复制代码
/usr/src/linux-2.6.0-test3/lib/string.c
- /**
- * strcpy - Copy a %NUL terminated string
- * @dest: Where to copy the string to
- * @src: Where to copy the string from
- */
- char * strcpy(char * dest,const char *src)
- {
- char *tmp = dest;
- while ((*dest++ = *src++) != '\0')
- /* nothing */;
- return tmp;
- }
复制代码
在 string.h 中有 __THROW 这个宏,我们来查看一下在哪里定义的:
$ grep __THROW /usr/include/*.h |grep define
- ...
- usr/include/malloc.h:# define __THROW throw ()
- ...
复制代码
而且几乎每个预处理指令都由 __THROW 来处理,可以这样查看:
$ grep -R __THROW /usr/include/* | grep "#"
linux 里的和高质量C/C++ 里的其实是一样的,除了异常处理哪里稍不同而已。 |
|