易截截图软件、单文件、免安装、纯绿色、仅160KB

C和C++之间的不同

(注,本文是翻译的http://www.cprogramming.com/
上的文章 Where C and C++ Differ

C++基于C,也保留了C的大部分特性。但是在源码级上有些地方是与C不兼容的。
C程序员使用C++时的陷阱
从 void* 的隐式分配
不能从 void* 隐式地分配到其他任何类型。例如,下面的代码在C中是非常有效的。
    int *X = malloc(sizeof(int) * 10);
但是却不能在C++中编译。
按照Bjarne Stroustrup他自己的解释,这不是类型安全的。
考虑如下的代码:
    int an_int;
    void *void_pointer = &an_int;
    double *double_ptr = void_pointer;
    *double_ptr = 5;
当你给*double_ptr分配值5,其向内存中写入8个字节,但是整形变量an_int仅为4个字节。
程序应该注意这样的强制转换。
释放数组:new[] 和 delete[]
在C中,只有一种主要的内存分配函数:malloc 。你可以使用它来分配单一元素和数组:
    int *X = malloc(sizeof(int);
    int *x_array = malloc(sizeof(int) * 10);
你总是用相同的方法释放内存:
    free(X);
    free(x_array);
而在C++中,为数组的内存分配是不同于单一对象的,要使用 new[] 操作符,你还必须调用
 delete[]来释放 new[] 分配的内存:
    int *X = new int;
    int *x_array = new int[10];
    delete X;
    delete[] x_array;
必须在使用函数前声明
虽然大部分的C代码都遵循这个约定,但是在C++中,使用函数前声明其是必须的。下面的代码
在C中是有效的,但是在C++中却无效:
    #include <stdio.h>
    int main()
    {
        foo();
        return 0;
    }
    int foo()
    {
        printf("Hello world\n");
    }
C++程序员使用C时的陷阱
结构体和枚举类型
声明一个结构体时,你必须在结构体类型的名字前加上 struct 关键字:在C++中,你可以这样:
    struct a_struct
   


相关文档:

在Eclipse中开发C/C++项目 转帖


C/C++ development with the Eclipse Platform
Pawel Leszek
 
摘要:通过本文你将获得如何在Eclipse平台上开发C/C++项目的总体认识。虽然Eclipse主要被用来开发Java项目,但它的框架使得它很容易实现对其他开发语言的支持。在这篇文章里,你将学会如何使用CDT(C/C++ Development Toolkit),一个在Eclipse平台上最 ......

C++ 调C C调c++

一、c++ 调C:
/* c语言头文件:cExample.h */
#ifndef C_EXAMPLE_H
#define C_EXAMPLE_H
#ifdef __cplusplus
extern "C"
{
#endif
int add(int x,int y);
#ifdef __cplusplus
}
#endif
 
#endif
/* c语言实现文件:cExample.c */
#include "cExample.h"
int add( int x, int y )
{
 return ......

Objective C 2.0 简明教程 (5) 属性(Property)


Objective C 2.0 简明教程 (5) 属性(Property)





作者:Administrator
  

周六, 2009年 03月 28日 07:47
Objective C 2.0 为我们提供了property。它大大简化了我们创建数据成员读写函数的过程,更为关键的是它提供了一种更为简洁,易于理解的方式来访问数据成员。 ......

转]C,C++经典问题,及面试笔试题


1       编程基础
1.1    基本概念
1.         的理解:const char*, char const*, char*const的区别问题几乎是C++面试中每次    都会有的题目。 事实上这个概念谁都有只是三种声明方式非常相似很容易记混。 Bja ......

C/C++代码检视要点


版权申明:以下内容属于作者正在写作的《软件测试实践》一书的内容,未经许可不得用于任何正式出版物中,如果转载请注明出处。
作者:周伟明
代码检视要点
代码检视技能属于开发人员的基本功,能够很大程度地反应出开发人员的能力水平,前面4.4.1节已经讲过提高评审检视的方法。下面以实际的C/C++语言方面的代码来讲解 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号