我想這個遞歸函數打印出LONG_MAX的(包含在limits.h中)八進制值LONG_MAX八進制值:如何獲得
void ft_get_nbr_base(long int nb, char *base, int i)
{
int size_base;
int size_nb;
char *str;
size_base = ft_strlen(base);
if (nb >= size_base)
ft_get_nbr_base(nb/size_base, base, i);
if (i == 1)
ft_putchar(base[(long int)(nb % size_base)]);
if (i == 2)
ft_putchar(ft_toupper(base[(long int)(nb % size_base)]));
}
所以我這樣稱呼它:ft_get_nbr_base(LONG_MAX ,「」,1);
結果是:777777777777777777777 而我做printf(「%o」,LONG_MAX),我得到37777777777
。你能否向我解釋如何得到與printf相同的結果,以及它爲什麼顯示這種差異?由於
你爲什麼這樣做? –
我記錄了printf函數 – zakk8889
代碼'printf(「%o」,LONG_MAX)'應該從編譯器中產生一個警告。 – user3386109