# Include <iostream> # include <stdarg. h> using namespace STD; // printf function implementation int _ cdecl cc_printf (const char * format ,...) {va_list argulist; int ret = 0; va_start (argulist, format); While (* Format) {If (* Format! = '%') {Putchar (* format); ++ ret; goto loop;} else {++ format; Switch (* Format) {// charcase 'C ': {int value = va_arg (argulist, INT); RET + = printf ("% C", (char) value); goto loop;} // char * case's ': {char * value = va_arg (argulist, char *); RET + = printf ("% s", value); goto loop;} // intcase 'd ': {int value = va_arg (argulist, INT); RET + = printf ("% d", value); goto loop;} case 'O ': {int value = va_arg (argulist, INT); RET + = printf ("% x", value); goto loop;} case 'X ': {int value = va_arg (argulist, INT); RET + = printf ("% x", value); goto loop;} case 'X ': {int value = va_arg (argulist, INT); RET + = printf ("% x", value); goto loop;} case 'U ': {unsigned value = va_arg (argulist, unsigned); RET + = printf ("% u", value); goto loop;} case 'F ': {double value = va_arg (argulist, double); RET + = printf ("% F", value); goto loop;} default: {goto loop; }}} loop: + + format;} va_end (argulist); return ret;} void main () {int I = 10; cc_printf ("% d \ n", I ); cc_printf ("Hello world \ n ");}