GCC 中与 C / C++ 的库函数名称可能不同了

来源:互联网 发布:淘宝如何搜电棍 编辑:程序博客网 时间:2024/05/22 06:41

C/C++中使用

    itoa( i, buffer, 10 );    printf( "String of integer %d (radix 10): %s\n", i, buffer );    itoa( i, buffer, 16 );    printf( "String of integer %d (radix 16): 0x%s\n", i, buffer );    itoa( i, buffer, 2  );    printf( "String of integer %d (radix 2): %s\n", i, buffer );    ltoa( l, buffer, 16 );    printf( "String of long int %ld (radix 16): 0x%s\n", l,            buffer );    ultoa( ul, buffer, 16 );    printf( "String of unsigned long %lu (radix 16): 0x%s\n", ul,            buffer );


GCC中使用

#include <stdlib.h>#include <stdio.h>int main( void ){    char buffer[20];    int  i = 3445;    long l = -344115L;    unsigned long ul = 1234567890UL;    _itoa( i, buffer, 10 );    printf( "String of integer %d (radix 10): %s\n", i, buffer );    _itoa( i, buffer, 16 );    printf( "String of integer %d (radix 16): 0x%s\n", i, buffer );    _itoa( i, buffer, 2  );    printf( "String of integer %d (radix 2): %s\n", i, buffer );    _ltoa( l, buffer, 16 );    printf( "String of long int %ld (radix 16): 0x%s\n", l,            buffer );    _ultoa( ul, buffer, 16 );    printf( "String of unsigned long %lu (radix 16): 0x%s\n", ul,            buffer );}

自己写库函数

EXTERN_C char* ultoa(unsigned long n, char* buffer, int radix){    static const char digital_alphabet[] = "0123456789ABCDEF";    const int MAX_WIDTH = sizeof(long)*CHAR_BIT;    char temp_buffer[MAX_WIDTH+1]={0};    char* p = temp_buffer+MAX_WIDTH;    do    {        *(p--) = digital_alphabet[n%radix];        n /= radix;    }while(n);    p++;    memcpy(buffer, p, strlen(p)+1);    return buffer;}EXTERN_C char* ltoa(long n, char* buffer, int radix){    unsigned long d = n>0 ? n : -n;    char * p = buffer;    if(n<0)        *(p++) = '-';    ultoa(d, p, radix);    return buffer;}__inline char* utoa(unsigned n, char* buffer, int radix){    return ultoa(n, buffer, radix);}__inline char* itoa(int n, char* buffer, int radix){    return ltoa(n, buffer, radix);}