好久没有写写什么咯,随便发一个:
你的代码有这么精辟吗?
int strlen( const char* s )
{
ASSERT(s != NULL); // 也要声明不为空指针 return *s ?1 + strlen( s + 1 ) : 0; // s +1 是相对偏移量 }
其他实现:
unsigned long first_add(char * str)
{
returnreinterpret_cast <unsignedlong>(str); } unsigned long last_add(char * str) { while( *str != '\0') { str++; } return reinterpret_cast <unsignedlong>(str); } int myStrLen(char * str) { return ( last_add( str ) - first_add( str ) ) /sizeof( char ); }