C语言内部函数 printf() 具体是怎么写的

C语言内部函数 printf() 具体是怎么写的
要详细函数内容

<STDIO.H> 中的
extern int printf (const char *, ...);
不够详细啊 看不懂

这样的 不够详细啊;

谢谢各位了 好了可以再加分
源码在哪找啊 我用的是KEIL 调51用的

printf 是可变参数的函数,功能非常强大

typedef char *va_list;
#define _AUPBND (sizeof (acpi_native_int) - 1)
#define _ADNBND (sizeof (acpi_native_int) - 1)
#define _bnd(X, bnd) (((sizeof (X)) + (bnd)) & (~(bnd)))
#define va_arg(ap, T) (*(T *)(((ap) += (_bnd (T, _AUPBND))) - (_bnd (T,_ADNBND))))
#define va_end(ap) (void) 0
#define va_start(ap, A) (void) ((ap) = (((char *) &(A)) + (_bnd (A,_AUPBND))))

int printf(char *fmt, ...)
{
va_list args;
int n;
va_start(args, fmt);
n = vsprintf(sprint_buf, fmt, args);
va_end(args);
write(stdout, sprint_buf, n);
return n;
}
static inline long write(int fd, const char *buf, off_t count)
{
return sys_write(fd, buf, count);
}
通过一个宏va_start把所有的可变参数放到了由args指向的一块内存中,
然后再调用vsprintf
最后实际上是通过调用sys_write输出到标准输出设备,就是显示器上来实现的

sys_write(unsigned int fd, const char * buf, size_t count);
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-10-24
printf()函数是C语言中的格式化输出函数,包含在<stdio.h>库函数里,格式化输出是指按照一定的格式输出,具体写法为
printf("<格式化字符串>",<参数列表>);
例如:
printf("Hello,world!\n");
输出为:
Hello,world!
如果要输出数据,则应使用格式控制字符,常用的有%d、%c、%f等等,例如:
int a=1;
printf("The number is %d.\n",a);
输出为
The number is 1.
第2个回答  2009-08-03
看源码

C语言内部函数 printf() 具体是怎么写的
printf 是可变参数的函数,功能非常强大 typedef char *va_list;define _AUPBND (sizeof (acpi_native_int) - 1)define _ADNBND (sizeof (acpi_native_int) - 1)define _bnd(X, bnd) (((sizeof (X)) + (bnd)) & (~(bnd)))define va_arg(ap, T) (*(T *)(((...

c语言printf()的代码是多少?
printf("表面积是%f\\n",s);return 0;}

c语言printf()函数的格式是什么?
printf("你的姓名是:%s\\n",name);return 0;}

c语言中, printf()函数的格式是什么?
printf("y=%d\\n",y);return 0;}

c语言printf()什么意思?
1、printf()函数是格式化输出函数,一般用于向标准输出设备按规定格式输出信息。2、printf()函数的调用格式为: printf("", )。3、格式输出,它是c语言中产生格式化输出的函数(在 stdio.h 中定义)。用于向终端(显示器,控制台等)输出字符。格式化字符串包含三种对象,分别为:(1)字符串常量;...

printf()函数是干什么的?
c语言中, %d\\n 是printf()函数的格式控制,%d是printf()函数的格式声明,表示结果只能输出十进制整数,\\n是普通字符中的换行符,表示输出后控制移到下一行的开头。c语言中printf()函数的一般格式printf("<格式化字符串>", <参量表>)。格式化字符串由格式控制、和输出表列两部分组成,其中格式控制...

在C语言里printf是什么意思?怎么用??
1、printf()函数是格式化输出函数,一般用于向标准输出设备按规定格式输出信息。2、printf()函数的调用格式为: printf("", )。3、格式输出,它是c语言中产生格式化输出的函数(在 stdio.h 中定义)。用于向终端(显示器,控制台等)输出字符。c语言中scanf()是专门输入的语句。用法如下:1、...

c语言中printf()函数输出什么格式的数据?
包括小数点在内),不足4位右对齐,左补空格,小数点后保留两位小数。如:printf("%4.2f", 1.2 ); \/\/输出结果 1.20 printf("%4.2f", 1.195 ); \/\/输出结果 1.20 printf("%4.2f", 1.194 ); \/\/输出结果 1.19 printf("%4.2f", 12.195 ); \/\/输出结果 12.20 ...

c语言里怎么使用printf?
printf()函数是格式化输出函数,调用格式为: printf("<格式化字符串>", <参量表>)。scanf()函数是格式化输出函数,调用格式为: scanf("<格式化字符串>", <参量表>)。格式输出,它是c语言中产生格式化输出的函数(在 stdio.h 中定义)。用于向终端(显示器、控制台等)输出字符。格式控制由要输出的...

c语言中printf("");
1、首先在编程代码中添加stdio.h头文件,具体代码如下图所示。2、然后将main主函数补充完整,后续只需要在函数中编写代码即可,如下图所示。3、c语言中输入空格字符,只需要使用代码printf(" ");即可,如下图所示。4、为了方便查看空格,可以在代码后面添加一串字符,同时在代码下方添加同样的字符,代码...

相似回答