【库函数源码剖析系列】(5) strcat
2012-09-28 00:50
435 查看
strcat:
我也问了同学,在他们机子上试了,竟然也出现这个问题,真的怀疑是不是bug?而如果直接运行,输出又是正确的,VS中调试、运行也都没错,不过后来重新在VC6中建工程、文件,又对了,真是费解。
上图中刚进Strcat函数dest的值就加了1,然后再按F11,dest值又加了1!之后的都很奇怪。
求高人指点。
// strcat #include <stdio.h> #include <string.h> char *Strcat(char *dest, const char *src) { char *tmp = dest; while ('\0' != *dest) { dest++; } while ('\0' != (*dest++ = *src++)) { ; } return tmp; } int main(int argc, char **argv) { char string[100]; strcpy( string, "Hello world from " ); Strcat( string, "strcpy " ); Strcat( string, "and " ); Strcat( string, "strcat!" ); printf( "String = %s\n", string ); return 0; }很奇怪,之前在VC6中调试时,在进入Strcat函数时,dest的值与string的值不一样,见下图:
我也问了同学,在他们机子上试了,竟然也出现这个问题,真的怀疑是不是bug?而如果直接运行,输出又是正确的,VS中调试、运行也都没错,不过后来重新在VC6中建工程、文件,又对了,真是费解。
上图中刚进Strcat函数dest的值就加了1,然后再按F11,dest值又加了1!之后的都很奇怪。
求高人指点。
相关文章推荐
- 【库函数源码剖析系列】(3) strstr
- 【库函数源码剖析系列】(2) strcmp
- 【库函数源码剖析系列】(1) strcpy
- 【库函数源码剖析系列】(4) strlen
- 【库函数源码剖析系列】(6) strchr
- 【java集合框架源码剖析系列】java源码剖析之HashMap
- 【java集合框架源码剖析系列】java源码剖析之HashSet
- 【java集合框架源码剖析系列】java源码剖析之TreeMap
- WorldWind源码剖析系列:WorldWind实时确定、更新、初始化和渲染地形和纹理数据
- IronPython 源码剖析系列(1):IronPython 编译器
- WorldWind源码剖析系列:插件类Plugin、插件信息类PluginInfo和插件编译器类PluginCompiler
- WorldWind源码剖析系列:外包围盒类BoundingBox和外包围球类BoundingSphere
- Redis源码剖析系列文章汇总
- WorldWind源码剖析系列:窗口定制控件类WorldWindow
- 【java集合框架源码剖析系列】java源码剖析之HashMap
- IronPython 源码剖析系列(2):IronPython 引擎的运作流程
- WorldWind源码剖析系列:视景体类Frustum
- WorldWind源码剖析系列:星球表面渲染类WorldSurfaceRenderer
- WorldWind源码剖析系列:下载队列类DownloadQueue
- C字符串——库函数系列(strlen、strcat、strcpy、strcmp)