Messages in this thread |  | | | Date | Tue, 20 Jan 2004 13:10:21 -0500 (EST) | | From | "Richard B. Johnson" <> | | Subject | Re: Compiling C++ kernel module + Makefile |
| |
On Tue, 20 Jan 2004, Zan Lynx wrote:
> On Tue, 2004-01-20 at 08:20, Richard B. Johnson wrote: > > Nevertheless, I provide three programs, one written in > > C, the other in C++ and the third in assembly. A tar.gz > > file is attached for those interested. > > > > -rwxr-xr-x 1 root root 57800 Jan 20 10:16 hello+ > > -rwxr-xr-x 1 root root 460 Jan 20 10:16 helloa > > -rwxr-xr-x 1 root root 2948 Jan 20 10:16 helloc > > > > The code size, generated from assembly is 460 bytes. > > The code size, generated from C is 2,948 bytes. > > The code size, generated from C++ is 57,800 bytes. > > > > Clearly, C++ is not the optimum language for writing > > a "Hello World" program. > > I like C++ and hate to see it so unfairly maligned. Here's a much > better example: > > Makefile: > helloc: hello.c > gcc -Os -s -o helloc hello.c > > hellocpp: hello.cpp > g++ -Os -fno-rtti -fno-exceptions -s -o hellocpp hello.cpp > > Both programs contain exactly the same code: one main() function using > puts("Hello world!"). > > # ls -l > -rwxrwxr-x 1 jbriggs jbriggs 2840 Jan 20 10:02 helloc > -rwxrwxr-x 1 jbriggs jbriggs 2948 Jan 20 10:06 hellocpp > > 108 extra bytes is hardly the end of the world. > -- > Zan Lynx <zlynx@acm.org> >
Well you just fell into the usual trap of using the "C-like" capabilities of C++ to call a 'C' function. If you are going to use 'C' library functions, you don't use an object-oriented language to call them. That is using a hatchet like a hammer.
I did not malign C++. I used it as it was designed and let the chips fall where they may.
Cheers, Dick Johnson Penguin : Linux version 2.4.24 on an i686 machine (797.90 BogoMips). Note 96.31% of all statistics are fiction.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |