码迷,mamicode.com
首页 > 编程语言 > 详细

C/C++ 学习笔记

时间:2014-09-25 18:19:47      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:style   ar   文件   sp   问题   on   c   amp   ad   

1、假设某个C函数的声明如下:

void foo(int x);

    函数被C编译器编译后在库中的名字为_foo,而C++编译器则会产生像_foo_int之类的名字用来支持函数重载和类型安全连接。由于编译后的名字不同,C++程序不能直接调用C函数。C++提供了一个C连接交换指定符号 extern "C" 来解决这个问题。例如:

extern "C"
{
    void foo(int x);
    ...
}

或者写成

extern "C"
{
#include "myHeader.h"
..//其他C头文件
}

    这就告诉C++编译器,函数foo是个C连接,应该到库中找名字_foo 而不是找 _foo_int 。C++编译器开发商已经对C标准库的头文件作了extern "C"处理,所以可以用#include 直接引用这些头文件。


2、指针

(1)指针变量初始化的方法:

int a;
int *p = &a;

(2)赋值语句的方法:

int a;
int *p;
p = &a;

    不允许把一个数赋予指针变量,故下面的赋值是错误的:

int *p;
p = 100;

    被赋值的指针变量前不能再加”*“说明符,如写成 *p = &a 也是错误的。

(3)打印:

int a, *p = &a;
printf("%d", *p);

(4)运算:

int a=10, b=20, s, t, *pa, *pb;
pa = &a;
pb = &b;
s = *pa + *pb;
t = *pa * *pb;

(5)通过结构指针变量访问结构变量成员:

p->num;    //(*p).num


3、联合类型

    在”联合“中,各成员共享一段内存空间, 一个联合变量的长度等于各成员中最长的长度。应该说明的是,这里所谓的共享不是指把多个成员同时装入一个联合变量内,而是指该联合变量可被赋予任一成员值,但每次只能赋一种值,赋入新值则冲去旧值。

C/C++ 学习笔记

标签:style   ar   文件   sp   问题   on   c   amp   ad   

原文地址:http://my.oschina.net/Jacedy/blog/318563

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!