c函數源碼
⑴ c語言atoi函數源代碼
c語言atoi函數源代絕禪碼:
int atoi(char n[])
{int i,y=0;
for(i=0;n[i]>='0'悔好 && n[i]<='9';i++)
y=y*10+n[i]-'碧宏鉛0';
return y;
}
⑵ 如何看c語言標准庫函數的源代碼
很遺憾,標准庫中的函數結合了系統,硬體等的綜合能力,是比較近機器的功能實現,所以大部分是用匯編完成的,而且已經導入到了lib和dll里了,就是說,他們已經被編譯好了,似乎沒有代碼的存在了.
能看到的也只有dll中有多少函數被共享.
第三方可能都是dll,因為上面也說了,dll是編譯好的,只能看到成品,就可以隱藏代碼,保護自己的知識產權,同時也是病毒的歸宿...... 當然,除了DLL的確還存在一種東西,插件程序~~~
⑶ 哪裡可以找到 c語言 函數的原代碼
如果安裝的是擾殲Visual studio6中的VC++,那麼有一橘螞些函數可以在這裡面找到:
X:\Program Files\Microsoft Visual Studio\VC98\CRT\SRC
其中X是安裝程序的盤符(一般是C)
但是好像不全,有些不是
http://www.aspx.cn/html/program/c++/504/49101.html
這里可以看到一些C語言字元串函數的源代碼
1. strlen(),計算字元串長度
int strlen(const char string)
{
int i=0;
while(string[i]) i++;
return i;
}
2. strcpy(), 字元串拷貝.
char *strcpy(char *destination, const char *source)
{
while(*destinaton++=*source++);
return (destination-1);
}
3. strcat(), 字元串的連接.
char *strcat(char *target,const char *source)
{
char *original=target;
while(*target) target++; // Find the end of the string
while(*target++=*source++);
return(original);
}
4. streql(), 判斷兩個字元串是否相等.
int streql(char *str1,char *str2)
{
while((*str1==*str2)&&(*str1))
{
str1++;
str2++;
}
return((*str1==NULL)&&(*str2==NULL));
}
5. strchr(), 在字元串中緩伍沖查找某個字元.
char *strchr(const char *string,int letter)
{
while((*string!=letter)&(*string))
string++;
return (string);
}
6. chrcnt(), 計算某個字元在字元串中出現的次數.
int chrcnt(const char *string,int letter)
{
int count=0;
while(*string)
if(*string==letter)count++;
return count;
}
7. strcmp(), 判斷兩個字元串是否相等.
int strcmp(const char *str1,const char *str2)
{
while((*str1==*str2)&&(*str1))
{
str1++;
str2++;
}
if((*str1==*str2)&&(!*str1)) //Same strings
return o;
else if((*str1)&&(!*str2)) //Same but str1 longer
return -1;
else if((*str2)&&(!*str1)) //Same but str2 longer
else
return((*str1>*str2)?-1:1);
}
⑷ 在C語言里,關於庫函數中各種數學函數的代碼。
你說的就是庫函數的源碼,也就是glibc,源碼在ftp://ftp.gnu.org/gnu/glibc可以下到,比如下載ftp://ftp.gnu.org/gnu/glibc/glibc-2.9.tar.gz,打開後就可以看到你需要的各種庫的具體實現代碼,比如在string中的strcat.c中就有
char*strcat(dest,src)
char*dest;
constchar*src;
{
char*s1=dest;
constchar*s2=src;
reg_charc;
/*Findtheendofthestring.*/
do
c=*s1++;
while(c!='