常见C/C++在底层中的表现形式

常见C/C++在OD/IDA中的表现形式

常量

c++代码

#define SIZE 100
const int g_nCount = 1000;
enum eData
{
   
	enum_TYPE_1 = 1,
	enum_TYPE_2 = 2,
	enum_TYPE_3 = 3,
};
struct sData
{
   
	int n;
	float fNum;
	char ch;
};
int main()
{
   
	const bool bRet = true;							//布尔常量
	const int nCount = SIZE;						//宏常量
	const char * sz = "Hello World";			//字符串常量
	const eData data = enum_TYPE_1;	//枚举常量
	const float fNum = 1.5;						//浮点常量
	const sData stc = {
   1,2.0,'1'};				//结构体常量
}

在IDA中查看
在这里插入图片描述
总结:

  1. 一般/宏/enum常量嵌入到opcode中
  2. 字符串常量使用地址
  3. 浮点常量保存在rdata段,并一定使用xmm0寄存器操作

字符串

c++代码

int main()
{
   
	char szStr[100] = {
   "Str[100]"};
	char szStr2[] = "szStr2[] ";
	wchar_t szWchar[
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值