C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。
它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。
因此,它的应用范围广泛,不仅仅是在软件开发上,而且各类科研都需要用到C语言,具体应用比如单片机以及嵌入式系统开发。
语言特点:C是中级语言/C是结构式语言/C语言功能齐全/C语言适用范围大/简洁紧凑、灵活方便/运算符丰富/数据类型丰富/C是结构式语言/语法限制不太严格,程序设计自由度大/适用范围大,可移植性好。
分类: 电脑/网络 >>程序设计 >>其他编程语言问题描述:
windows C 程序设计中,常用的宏有哪些?
如何定义的?
解析:
C语言中没有宏语句,对宏主要的作用就是以下两个方面,其他的高级作用较难 *** 作,如microsoft公司在MFC中实现的消息映射就是一个很好的例子:
1.多次包含头文件的问题
当你的工程文件很多的时候,就会出现这样的问题:
a.c:
#include "a.h"
#include "b.h"
...
a.h:
#include "b.h"
#include <stdio.h>
...
b.h:
#include <stdio.h>
...
很显然,你在编译a.c的时候,就会造成重复包含头文件的问题。
这个问题有什么危害呢?浪费时间倒是小问题,最大的危害就是:造成重复定义,有可能让你编译失败。
为了避免这个问题,就得用到条件编译
#ifdef
...
#endif
或者
#ifndef
...
#endif
我个人喜欢的作法是这样的:
a.h:
#ifndef _A_H_
#define _A_H_
#include <stdio.h>
#include "b.h"
...
#endif
至于这是什么意思,为什么,怎么用,嘿嘿,看书去。
2.调试问题。
大家在写程序的时候会经常出一些问题,而单步调试速度太慢。
一般常用的作法是在程序的中间加一些printf函数,把某些变量的值打印出来,看看程序在这里是不是正常。
但是当需要生成最终程序的时候,又需要删掉这些printf如果以后再修改,又要加上……太烦了!!
于是条件编译就成为好帮手了。
比如:
a.c:
#include <stdio.h>
int main()
{
int a=1
int b=2
#ifdef _DEBUG_
printf("a=%d,b=%d\n",a,b)
#endif
return 0
}
我用的是GCC,这样编译:
gcc -D _DEBUG_ a.c -o a.exe
运行a.exe,就会得到a=1,b=2这样的结果。
我再编译
gcc a.c -o a.exe
再运行a.exe,嘿嘿,什么都不输出了。
概括的说就是C是控制台应用程序,就是运行时出现一个就像dos黑色窗口,而widows程序设计是窗口应用程序,就像WORD,记事本等这样的有窗口框架的程序设计。还有就是他们的编程思想不同,C语言是面向过程的,可以理解为顺序的执行;而Widows是面向过程的,事件触发,模块化的编程思想,如果学过VB的话就很容易理解。另外C的程序入口函数是main,windows程序的入口函数是Winmain,windows定义了很多句柄和宏定义,刚开始理解起来有些困难,比如intWINAPI
WinMain
(HINSTANCE
hThisInstance,
HINSTANCE
hPrevInstance,
LPSTR
lpszArgument,
int
nFunsterStil)
。
《WINDOWS程序设计》:初级或中级程序员看的
《WINDOWS核心编程》:高级和系统程序员看的
所谓初中级程序员,就是编些普通应用程序。比如扫雷。
所谓高级程序员,就是编写硬件驱动之类的,大型应用程序,比如解霸
系统程序员,编写底层驱动,系统平台,超大型应用程序,word,瑞星之类
它们和C语言的主要区别是,C++不是专门为Windows程序所发明的语言,其它平台,如Mac和Linux都可以用C++,只不过Visual
C++在它们上没办法运行就是了。另外一点,C++不是Java,不带自己的图形界面设计包。所以面向用户的界面要由其它程序来完成,这才是VC的主要目的,单纯用C++是不行的。
简单地说就是利用windows的应用程序接口(API),编写windows程序。
一般用C/C++;
如果用c,就是直接用这些API。
如果用C++,就用MFC(微软基础类库,封装了windows
的API)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)