为什么c++主要在windows平台

Python018

为什么c++主要在windows平台,第1张

C语言比较贴近操作系统, 纯C语言在windows平台上主要用于系统底层驱动的开发(一般会辅以汇编), 依我十几年的编程经验来看, C语言在windows平台上的优势并不大, 反而是它的兄弟c++是windows平台编程语言的主流. 这本身也是因为使用C这种非面向对象的编程语言处理界面逻辑比较复杂不方便, 也难以管理复杂的大型应用.

在linux或unix上正好相反, c语言一直到现在都还是主流, c语言编写的命令程序可以很方便与其他程序在shell上配合. c, 脚本和shell构建了一整套unix/linux哲学.

与c语言相提并论的一般是c++, 因为与java, python, vb这些语言明显不是一个领域.

c语言相对c++来说比较简单, c++则编程语言中最复杂的一个.

可以简单的总结说:

1. c语言符合unix/linux哲学, 它适合和其他程序以进程方式组合来构建大型的应用, 也是因为这个原因, linux直到2.5才把线程提到考虑范围中. linux特别重视进程的开销, 而相比windows, linux的进程开销也相对较小

2. c++语言符合windows编程环境, 大部分windows程序都是以界面为主, 在windows上想用c写界面程序是很不容易的, 而且可利用的资源还少.

所以缺点只是相对而言, 如果你适合在win平台开发, 不需要再考虑c, c++可以完全替代它. 如果你适合在linux平台开发, 你甚至可以只用c, 因为linux中的桌面系统gnome都是拿c(但是经过了一些模拟对象化的处理, 而且大部分上层应用还用了python来编写)来写的.

调用window库窗口函数即可创建windows窗口。

必须使用windows的编译器,如VC,MS等等。

RegisterClassEx函数:该函数注册在随后调用CreateWindow函数和CreateWindowEx函数中使用的窗口类。 RegisterClass函数己经由函数RegisterClassEx函数来代替,但是,如果不需要设置类的小目标则仍然可以使用RegisterClass函数。

CreateWindowEx函数:该函数创建一个具有扩展风格的层叠式窗口、弹出式窗口或子窗口,其他与CreateWindow函数相同。关于创建窗口和其他参数的内容,请参看CreateWindow。具体仍可见微软的msdn。

消息处理函数WindowProc:该函数是一个应用程序定义的函数。它处理发送给窗口的消息。WINDPROC类型定义了一个指向该回调函数的指针。WindowProc是用于应用程序定义函数的占位符。

一、头文件作用

C语言里,每个源文件是一个模块,头文件为使用该模块的用户提供接口。接口指一个功能模块暴露给其他模块用以访问具体功能的方法。

使用源文件实现模块的功能,使用头文件暴露单元的接口。用户只需包含相应的头文件就可使用该头文件中暴露的接口。

通过头文件包含的方法将程序中的各功能模块联系起来有利于模块化程序设计:

1)通过头文件调用库功能。在很多场合,源代码不便(或不准)向用户公布,只要向用户提供头文件和二进制库即可。用户只需按照头文件中的接口声明来调用库功能,而不必关心接口如何实现。编译器会从库中提取相应的代码。

2)头文件能加强类型安全检查。若某个接口的实现或使用方式与头文件中的声明不一致,编译器就会指出错误。这一简单的规则能大大减轻程序员调试、改错的负担。

在预处理阶段,编译器将源文件包含的头文件内容复制到包含语句(#include)处。在源文件编译时,连同被包含进来的头文件内容一起编译,生成目标文件(.obj)。

如果所包含的头文件非常庞大,则会严重降低编译速度(使用GCC的-E选项可获得并查看最终预处理完的文件)。因此,在源文件中应仅包含必需的头文件,且尽量不要在头文件中包含其它头文件。

二、用法

C/C++ 程序在源文件前面写 #include <windows.h>即可。

作用

头文件封装了库函数以及一些类,将一些复杂的工作由库函数处理,而用户不必把精力放在这些地方。比如说cout<<,为标准输出流,其实说到底还是函数调用,不过这个函数有些特殊,用的是运算符重载,确切地说是重载了“<<”运算符,作用是将键盘输入的在屏幕上打印出来,这个功能要是由我们去写,估计也得学个两三年才有可能。所以就简化了操作。

而这一系列的函数都在头文件中包含(是一个函数库)。在调用时包含后便可直接用。