s[]; { printf("%s %d\n", s, a); } main() { int a = 42; puts("Welcome to classic C"); say_it(a, "the answer is"); } /* C89 */ void say_it(int a, char * s) { printf("%s %d\n", s, a); } main() { int a = 42; puts("Welcome to C89"); say_it(a, "the answer is"); } // C99 struct X { int a; char * s; }; int main(void) { puts("Welcome to C99"); struct X x = { .s = "the answer is", .a = 42 }; printf("%s %d\n", x.s, x.a); } // C++ (C++98) #include <cstdio> struct X { int a; const char * s; explicit X(const char * s, int a = 42) : a(a), s(s) {} void say_it() const { std::printf("%s %d\n", s, a); } }; int main() { X("the answer is").say_it(); }