strlen:
用一条语句实现库函数strlen
1 #include <stdio.h> 2 #include <assert.h> 3 4 size_t strlen(const char* s) 5 { 6 return ( assert(s), (*s ? (strlen(s+1) + 1) : 0) ); 7 } 8 9 int main() 10 { 11 printf("%d\n", strlen( NULL)); 12 13 return 0; 14 }
===>>1:断言 2:三目运算符 3:递归 4:逗号表达式
实现库函数strcpy
1 #include <stdio.h> 2 #include <assert.h> 3 4 char* strcpy(char* dst, const char* src) 5 { 6 char* ret = dst; 7 8 assert(dst && src); 9 10 while( (*dst++ = *src++) != '\0' ); 11 12 return ret; 13 } 14 15 int main() 16 { 17 char dst[20]; 18 19 printf("%s\n", strcpy(dst, "Delphi Tang!")); 20 21 return 0; 22 }
===>>1:返回类型 2:断言 3:效率