我有一个赋值,我需要在C中打印一个整数而不使用printf,putchar等。不允许包含头文件。没有函数调用,除了我写的任何东西。我有一个函数my_char我正在使用(也许是错误的),但它打印出一个字符。我目前有以下代码向后打印数字。不寻找答案。只是寻找一些方向,一些帮助,也许我看着它完全错了。在没有Printf或任何函数的情况下在C中打印int
void my_int(int num)
{
unsigned int i;
unsigned int j;
char c;
if (num < 0)
{
my_char('-');
num = -num;
}
do
{
j = num % 10;
c = j + '0';
my_char(c);
num = num/10;
}while(num >0);
}
一种可能性是使用递归。还要注意,如果'num == INT_MIN'(至少在典型的2补码机上)你的代码将会失败。 –
忘了提及,我很抱歉,不允许使用递归(我知道,令人沮丧) – CLZ828
如果从字面上不允许包含头文件,您不能将它打印到标准输出 - 即使是'写'系统调用这是要使用内联汇编访问)在头文件中声明... – 2012-09-09 22:55:20