探索新的C + +和MFC在Visual Studio 2010功能
Sumit Kumar
2010年列出的Visual Studio C + +开发的巨大好处。从雇用能力提供由Windows 7大量代码的基础工作,以增强生产力特征的新特点,有一些新的东西,提高了几乎所有的C + +开发人员。
在这篇文章中,我将解释微软已经解决了如何用C + +开发人员所面临的广泛的一些问题。具体来说,
的Visual Studio 2010可以从即将加入的C + +0核心语言功能更现代的编程模型X标准,以及大修标准库采取的新的语言功能。有新的并行编程库和工具,以简化并行程序的创建。你还会发现提高整体性能和开发人员的生产力由于智能感知和代码的了解,功能,规模大的代码库。而你会受益于整个
图书馆和其他功能设计时提高性能,生成时,编译时间和联系时间。
2010年迁移到Visual Studio中生成系统的MSBuild,使其更加定制,并支持本地多目标。而在MFC库利用新的Windows 7 API的力量增强,使您能够编写应用程序伟大的Windows 7。
让我们来看一看这些C + +为重点的进步在Visual Studio 2010仔细看看。
的C + +0 x核心的语言特色
下一个C + +标准正逐日接近定稿。为了帮助你在C + +0 X扩展开始,在Visual C + +在Visual Studio 2010编� ......
从某位网友的博客看到关于extern "C"用法的文章,讲得非常透彻,于是就摘抄了我之前不甚了解的部分做个backup。
一、从C与C++编译连接方式深入理解extern "C"
<1>.C和C++对函数的处理方式是不同的.被extern "C"修饰的变量和函数是按照C语言方式编译和连接的.extern "C"用于实现C++与C及其它语言的混合编程。
<2>.未加extern “C”声明时的编译方式
首先看看C++中对类似C的函数是怎样编译的。
作为一种面向对象的语言,C++支持函数重载,而过程式语言C则不支持。函数被C++编译后在符号库中的名字与C语言的不同。例如,假设某个函数的原型为:
void foo( int x, int y );
该函数被C编译器编译后在符号库中的名字为_foo,而C++编译器则会产生像_foo_int_int之类的名字(不同的编译器可能生成的名字不同,但是都采用了相同的机制,生成的新名字称为“mangled name”)。_foo_int_int这样的名字包含了函数名、函数参数数量及类型信息,C++就是靠这种机制来实现函数重载的。例如,在C++中,函数void foo( int x, int y )与void foo( int x, float y )编译生成的符号是不相同的,后者为_foo_int_float。
同样地,C++中的变量 ......
在C语言中,修饰符extern用在变量或者函数的声明前,用来说明“此变量/函数是在别处定义的,要在此处引用”。
一.extern修饰变量的声明
举例来说,如果文件a.c需要引用b.c中变量int v,就可以在a.c中声明extern int v,然后就可以引用变量v。这里需要注意的是,被引用的变量v的链接属性必须是外链接(external)的,也就是说a.c要引用到v,不只是取决于在a.c中声明extern int v,还取决于变量v本身是能够被引用到的。这涉及到c语言的另外一个话题--变量的作用域。能够被其他模块以extern修饰符引用到的变量通常是全局变量。还有很重要的一点是,extern int v可以放在a.c中的任何地方,比如你可以在a.c中的函数fun定义的开头处声明extern int v,然后就可以引用到变量v了,只不过这样只能在函数fun作用域中引用v罢了,这还是变量作用域的问题。对于这一点来说,很多人使用的时候都心存顾虑。好像extern声明只能用于文件作用域似的。
如果在声明前加了extern关键字,那就表示这个变量是在其他地方定义的, 如果在.cpp文件中声明一个全局变量,那么这个变量的作用域就是这个文件。如果要在其他文件中使用,那么就需要在其他文件的声明前面加上extern
/// Declar ......
C语言程序可以看成由一系列外部对象构成,这些外部对象可能是变量或函数。而内部变量是指定义在函数内部的函数参数及变量。外部变量定义在函数之外,因此可以在许多函数中使用。由于C语言不允许在一个函数中定义其它函数,因此函数本身只能是“外部的”。
由于C语言代码是以文件为单位来组织的,在一个源程序所有源文件中,一个外部变量或函数只能在某个文件中定义一次,而其它文件可以通过extern声明来访问它(定义外部变量或函数的源文件中也可以包含对该外部变量的extern声明)。
而static则可以限定变量或函数为静态存储。如果用static限定外部变量与函数,则可以将该对象的作用域限定为被编译源文件的剩余部分。通过static限定外部对象,可以达到隐藏外部对象的目的。因而,static限定的变量或函数不会和同一程序中其它文件中同名的相冲突。如果用static限定内部变量,则该变量从程序一开始就拥有内存,不会随其所在函数的调用和退出而分配和消失。
C语言中使用静态函数的好处:
静态函数会被自动分配在一个 ......
这三章主要讲了C语言的链接、库函数、预处理。还是有点晦涩难懂啊。
一个C程序是可以有多个部分组成的,但是编译器每次只能编译一个文件,找出其中的错误。某些C语言实现提供了一个称为lint的程序,可以捕获大量的此类错误。连接器一般是与编译器分离的,编译器是把C程序“翻译”成对连接器有意思的形式,这样连接器就能“读懂”C程序了。
对于同名引起的冲突,我们可以将这些放到一个源文件中,并用static修饰,用于若干函数共享这些数据。还有一个好方法就是每个外部对象只在一个地方声明,这个声明的地方一般就在一个头文件中,需要用到该外部对象的所有模块都应该包括这个头文件。
C语言中默认的函数类型为int。任何函数都应该在第一次被调用之前进行声明或者定义,若不这样,函数的默认类型就为int了。函数声明时,形参除了float,short,char类型的参数,在函数声明中完全可以省略参数的类型说名。
宏定义#define,预处理命令,在编译之前完成,可以简化我们的代码。有时候看上去像个函数,却没有函数的开销。宏提供了对字符的替换功能,却不使用对象。
宏的使用是:# ......
它可以导入库,调用外面的库函数,java语言就很好的地利用了这一点,jsp也可以在网页中调用java编写好的程序,要使用javabean标签
struts本身就是对java技术一个包装,包括,html,jsp及标签,servlet。
hibernate是别人编写好映射数据库的工具,其代码都是用java语言编写的,只是为了方便用户使用,用户只要导入其库,调用其方法就行 ,
spring也与hibernate类似,只是其用意不同,它的管理权限目前最大,什么事物都可管理,上上下下,包括javabean,连接数据库等等......并且它可以调用hibernate数据库支持,其本身也一套连接数据库方法。 ......
它可以导入库,调用外面的库函数,java语言就很好的地利用了这一点,jsp也可以在网页中调用java编写好的程序,要使用javabean标签
struts本身就是对java技术一个包装,包括,html,jsp及标签,servlet。
hibernate是别人编写好映射数据库的工具,其代码都是用java语言编写的,只是为了方便用户使用,用户只要导入其库,调用其方法就行 ,
spring也与hibernate类似,只是其用意不同,它的管理权限目前最大,什么事物都可管理,上上下下,包括javabean,连接数据库等等......并且它可以调用hibernate数据库支持,其本身也一套连接数据库方法。 ......
它可以导入库,调用外面的库函数,java语言就很好的地利用了这一点,jsp也可以在网页中调用java编写好的程序,要使用javabean标签
struts本身就是对java技术一个包装,包括,html,jsp及标签,servlet。
hibernate是别人编写好映射数据库的工具,其代码都是用java语言编写的,只是为了方便用户使用,用户只要导入其库,调用其方法就行 ,
spring也与hibernate类似,只是其用意不同,它的管理权限目前最大,什么事物都可管理,上上下下,包括javabean,连接数据库等等......并且它可以调用hibernate数据库支持,其本身也一套连接数据库方法。 ......
总记录数:2015; 总页数:336; 每页6 条;
首页 上一页 1
[2] [3] [4] [5] [6] [7] [8] [9] [10] 下一页 尾页