我只是为自己的 itoa 编写代码(仅用于正数),并尝试使其尽可能高效,我从函数内部和 main 中显示值,它可以工作,但是当我从内部删除 printf 行时代码的功能不再起作用,有人知道为什么吗?
这就是它的工作原理
这是它不起作用的地方
感谢您的时间!祝你今天过得愉快
编码:
#include<stdio.h>
#define uint8_t unsigned char
#define uint16_t unsigned int
/*Prototipos de funciones*/
uint8_t *UART0_itoa(uint16_t number, uint8_t base);
/*Función principal*/
void main(){
uint8_t *cadena;
cadena = UART0_itoa(255, 16);
printf("The String in main: %s\n",cadena);
}
/*Declaración de funciones*/
uint8_t *UART0_itoa(uint16_t number, uint8_t base){
uint8_t *aux;
*aux = '\0';
while(number){
*--aux = (number%base>9)?(number%base)+'7':(number%base)+'0';
number/=base;
}
//printf("The String in the function: %s\n",aux);
return aux;
}