C/C++个人易忘小知识点

extern 修饰符

在C语言中,修饰符extern用在变量或者函数的声明前,用来说明“此变量/函数是在别处定义的,要在此处引用”。

//文件 a.cpp
#include <stdio.h> 
int i = 3; 
int out(void) { 
    printf("%d\n",i);     
    return 0;      
 }
//文件 b.cpp
#include <stdlib.h> 
extern int p(void); 
extern int i; 
int main() { 
    p(); 
    system("pause");     
    return 0;      
}

详情:
C语言中extern的用法 (浅显)
C语言extern关键字用法和理解 (关键)
深入理解extern用法 (深入)

enum枚举

枚举类型通常用于为程序中的一组相关的常量取名字,以便于程序的可读性和维护性。
每个枚举常量可以用一个标识符来表示,也可以为它们指定一个整数值,如果没有指定,那么默认从 0 开始递增

enum DAY
{
      MON=1, TUE, WED, THU, FRI, SAT, SUN
};
//等效于
#define MON  1
#define TUE  2
#define WED  3
#define THU  4
#define FRI  5
#define SAT  6
#define SUN  7

详情:
C enum(枚举)

内存对齐

C++结构体内存对齐基本原则
1.第一个成员在结构体变量偏移量为0 的地址处,也就是第一个成员必须从头开始。
2.其他成员的偏移量为自身大小的整数倍。
3.结构体总大小对最大对齐数(通过最大成员来确定)的整数倍。

struct node{
	char a;
	int b;
	char c;
	double d;
	int e;
};

// 最大对齐数 = sizeof(double) = 8
// (x)表示根据基本原则2,后一位成员为了自身偏移量我自身大小的整数倍,在前面空出x字节
// [x]表示根据基本原则3,结构体为了总大小位最大对其数的整数倍,在最后空出x字节
// siezof(node) = 1 + (3) + 4 + 1 + (7) + 8 + 4 + [4] = 32 

详情:
C++结构体内存对齐基本原则
C++内存对齐

运算符优先级

基本原则:
1.指针 > 单目运算 > 双目运算 > 多目运算 > 赋值运算 > 逗号
2.双目运算符中,算术运算 > 比较运算 > 位移运算 > 位运算 > 逻辑运算
3.同级运算符中,单目运算、条件运算、赋值运算,运算顺序遵循从右至左,其余运算符从左至右。

// 1 << 3 + 2 && 7 等价于 (1 << (3 + 2))&&7.
// a | b < c & d 等价于 a | (b < c) & d

详情:
运算符优先级 (个人小总结)
运算符优先级 (百度百科)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值