谁能帮我详细讲一下这个宏定义?

问题描述

#defineMAKELONG(a,b)((LONG)(((WORD)(a))|((WORD)(b)))<<16))为什么在涉及底层操作的宏定义中会频繁用到移位操作呢?有什么特殊意义呢?这是MFC类库中的一段代码

时间: 2024-09-08 14:21:41

谁能帮我详细讲一下这个宏定义?的相关文章

Objective-C 宏定义详细介绍_IOS

喜欢读一些开源项目源码的人,总是会发现,大神的代码中总是有那么一些简短而高效的宏定义,点击进去一看,发现晦涩难懂,别说学习了,有时候理解都是一种困难,但是宏定义本身并没有那么难,但是写出一个好的宏当然还是需要丰富的经验和技术,接下来就说一说宏定义,看懂大神的宏是第一步,偶尔写一个也是装逼的好办法- 定义: 宏定义分为两种:一种是对象宏(object-like macro)另一种就是函数宏(function-like macro) 根据名字也可以理解到,对象宏就是用来定义一个量,通过这个宏可以拿到

c语言-请求帮我详细解释下这个程序,谢谢了

问题描述 请求帮我详细解释下这个程序,谢谢了 #include #include #define uchar unsigned char #define uint unsigned int #define WCOMM XBYTE[0x0000] #define RCOMM XBYTE[0x0001] #define WDATA XBYTE[0x0002] #define RDATA XBYTE[0x0003] void BusyWait() { while((RCOMM & 0x80) != 0

builder-麻烦大家帮我详细解释下下面这段与串口交互的代码,谢谢!

问题描述 麻烦大家帮我详细解释下下面这段与串口交互的代码,谢谢! void __fastcall TfrmPatient::edtDosageDblClick(TObject *Sender) { //read comm data,then set in edtDosage edit //open com port HANDLE hCom = CreateFile(g_ConfigManager.sComPort.c_str(),GENERIC_WRITE,0,NULL,OPEN_EXISTIN

android-Android:求大神帮我详细讲解一下这段代码

问题描述 Android:求大神帮我详细讲解一下这段代码 private void clearPackagePreferredActivities(Context context String packageName) { PackageManager mPm = context.getPackageManager(); UserManager mUserManager = (UserManager)context.getSystemService(Context.USER_SERVICE);

帮我看下下面的递归,跪求大神帮我详细解答一下。

问题描述 帮我看下下面的递归,跪求大神帮我详细解答一下. //数列1,1,2,3,5,8,13,21,34... ...求第n项 class FuncDemo11 { public static void main(String[] args) { System.out.println(getNData(8)); } public static int getNData(int n) { if(n==1||n==2) return 1; return getNData(n-1)+getNData

java中需要统计子串在字符串中出现多少次。 麻烦大家帮我详细解释一下那串代码是什么意思。谢谢了!

问题描述 java中需要统计子串在字符串中出现多少次. 麻烦大家帮我详细解释一下那串代码是什么意思.谢谢了! String str="abcjavadefjavadddjava"; String newStr="java"; int count=0; int i=0;//出现的下标 while(str.indexOf(newStr,i)>=0 && i<=str.length()){ count++; i = str.indexOf(ne

c++-这段编程出现了这个问题,哪位大神能帮我详细解答一下,谢谢啦

问题描述 这段编程出现了这个问题,哪位大神能帮我详细解答一下,谢谢啦 问题:0x01054259 处有未经处理的异常: 0xC0000005: 读取位置 0x00000000 时发生访问冲突 代码: #include using namespace std; int main() { void swap(int *,int *); int *p1=NULL,*p2=NULL; swap(p1,p2); cout<<*p1<<" "<<*p2<&

js画表格问题有哪位大哥好心,帮我详细解释一下下面这段代码,主要是位重数据库表里取数据然后用下面这段代码一一的画出表格显示到页面

问题描述 js画表格问题有哪位大哥好心,帮我详细解释一下下面这段代码,主要是位重数据库表里取数据然后用下面这段代码一一的画出表格显示到页面functionreload(){for(vara=0;a<bms.length;a++)for(varb=0;b<shsizes.length;b++){getBookmakerOdds(bms[a],shsizes[b]);}}functiondraw(){varsb=[];for(varkinsds.versus){if(!leagueData[sds

C语言中的内联函数(inline)与宏定义(#define)详细解析_C 语言

先简明扼要,说下关键:1.内联函数在可读性方面与函数是相同的,而在编译时是将函数直接嵌入调用程序的主体,省去了调用/返回指令,这样在运行时速度更快. 2.内联函数可以调试,而宏定义是不可以调试的.内联函数与宏本质上是两个不同的概念如果程序编写者对于既要求快速,又要求可读的情况下,则应该将函数冠以inline.下面详细介绍一下探讨一下内联函数与宏定义. 一.内联函数是什么?内联函数是代码被插入到调用者代码处的函数.如同 #define 宏(但并不等同,原因见下文),内联函数通过避免被调用的开销来提