关于几个宏的展开

SolidWorks一件展开宏 用于SolidWorks中的零件图一件展开为DXF格式图,工程图一键转PDF格式图,网络下载一起探讨 立即下载

工作之余写一下,给有帮助的朋友。

 

typedef struct  
{
    
int a;
    
int b;
    
int    c;
    
char *str;

}
PROCLIST_ENTRY;

typedef 
struct  
{
    
int* a;
    PROCLIST_ENTRY
* entry;
    
int c;
    
int d;

}
WINDOW_PROCREG;


#define BEGIN_CLASSMESSAGE_MAP(msgHandleMap, newClassID, classID) 
    
extern  PROCLIST_ENTRY msgHandleMap##wpList[];
            WINDOW_PROCREG msgHandleMap[
1] = {{(int*)NULL, msgHandleMap##wpList, newClassID, classID}};
            PROCLIST_ENTRY msgHandleMap##wpList[] 
= {

#define END_MESSAGE_MAP()       {0, -1, -1, NULL} };  //缺省处理函数.

#define ON_MESSAGE(msg , proc)  {0, msg, msg , proc},


//////////////////////////////////////////////////////////////////////////
BEGIN_CLASSMESSAGE_MAP(Class, 1, 2)
    ON_MESSAGE(
1, "no.1")
    ON_MESSAGE(
2, "no.2")
    ON_MESSAGE(
3, "no.3")
    ON_MESSAGE(
4, "no.4")
    ON_MESSAGE(
5, "no.5")
END_MESSAGE_MAP()

//////////////////////////////////////////////////////////////////////////
int main (int argc, char* argv[])
{
    
int i;

    
for(i=0; i<5; i++)
    
{
        printf(
"%s ", (Class->entry)[i].str);
    }


    
return 0;
}
一文搞懂【Linux 搭建 Dread Hunger 服务器】附本体及Docker部署集群方案 看直播发现了五花八门的开服器和版本,一时兴起按官方文档进行了搭建尝试,所以我的版本基于官方Stream2024.01.10更新的版本,也就是停服时的玩法,应该可以根据mod和补丁魔改成更那些开服器一样的版本,本文不做谈论,注重服务器搭建,毕竟8个人不可能在一个局域网里乱象:首先,我看了大量教程视频,一类是开服器的推广,另一类自建的基本采用Windows搭建,我觉得最离谱的是大部分教程都会教你买一台远程Windows虚拟机??? 阅读详情

相关推荐

解决/usr/lib64/libstdc++.so.6和/lib64/libc.so.6版本过低问题

在CentOS7.0中编译好MySQL5.7.14之后,然后在CentOS6.5中初始化MySQL,执行:/usr/local/mysql/bin/mysqld --version出现如下问题:./bin/mysqld: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by ./bin/mysqld)

poxiaonie的博客 2万+

C/C++宏中#的用法以及多重宏的展开过程

C/C++宏定义中#以及##的特殊用法以及多重宏的展开

weixin_43354152的博客 3309

STM32N6低功耗模式详解:从Sleep到VBAT的工程实践

低功耗模式是嵌入式系统能效设计的核心机制,其本质是通过动态调控CPU时钟、外设供电与电压域状态,在唤醒延迟、功能保留与静态电流之间实现最优平衡。基于Arm Cortex-M55内核的STM32N6采用多电压域架构(核心域/保持域/备份域/模拟域),支持Sleep、Stop、Standby及VBAT四级功耗分级,并深度融合DVFS(动态电压频率缩放)与外设时钟门控等关键技术。该设计不仅显著降低待机电流至亚微安级,更保障RTC持续计时、TCM内容可选保留、WKUP快速唤醒等关键能力,广泛应用于电池供电的AIoT

weixin_36369848的博客 242

C语言中嵌套宏的展开规律

本文讲解了C语言嵌套宏的展开规律

_Santiago的博客 4848

ESD笔记(三)_常用ESD保护电路优缺点

根据ESD防护器件的TLP I-V特性我们可将ESD器件分为回滞类和非回滞类两种; 回滞类的ESD器件包括NPN三极管、栅极接地 NMOS ( GGNMOS, Gate-grounded NMOS )、可控桂(SCR, siliconcontrolled rectifier)等。 非回滞类的ESD器件包括二极管、二极管串、沟道工作的MOS管、PNP三极管、栅极接电源的PMOS(GDPMOS)等,与回滞类ESD器件相比,其TLP曲线没有负阻区的存在。 常用于ESD防护的器件包括PN结二极管、GGN

weixin_47139649的博客 1万+

S32DS 3.5.8离线包怎么用?保姆级教程教你手动安装S32K3开发环境(附资源下载)

本文详细介绍了S32DS 3.5.8离线包的安装方法,适用于S32K3开发环境的手动搭建。从资源获取、完整性验证到分步安装指南,提供了全面的离线部署解决方案,特别适合军工/车企内网开发等场景。文章还包含版本选择建议、常见问题排查及团队协作方案,帮助开发者高效完成环境配置。

weixin_30471561的博客 477

宏定义中,#/##的区别以及宏的展开

1、关于符号#和## #define f(a,b) a##b #define g(a)  #a #define h(a) g(a) #  将右边的参数做整体的字符串替换,即便是另一个宏,也不展开,仍然作为字符串字面信息输出。 g(hello world) =  “hello world”;  g(sleep(1)) = “sleep(1)” g(f(1,2

fendouzhe的专栏 4648

实战指南:从零搭建ROS2 + Cartographer 2D激光SLAM系统

本文详细介绍了如何从零开始搭建ROS2与Cartographer结合的2D激光SLAM系统,涵盖环境准备、激光雷达驱动配置、Cartographer安装与参数调优等关键步骤。通过实战案例和常见问题解决方案,帮助开发者快速掌握激光雷达建图技术,提升机器人自主导航能力。

weixin_29062255的博客 402

一个C语言宏展开问题

一个令人比较迷惑的问题,学C语言好多年,今天终于搞明白,记之。 1 #define cat(x,y) x ## y 2 #define xcat(x,y) cat(x,y) 3 cat(cat(1,2),3) //为什么不是 123? 4 xcat(xcat(1,2),3) //结果为什么是 123? 要解答这个问题,首先看一下预处理过程的几个步骤: 字符集转换(如三联字...

weixin_30496751的博客 286

关于42步进电机驱动——基于STM32 HAL库实现

我找了好多资料,好多关于42步进电机的都是文档,这么文档都需要积分,需要积分就算了内容还非常差,浪费时间和电脑的内存。关于大部分是基于Arduino和51去驱动的 42步进电机驱动硬件如下: 首先你要了解步进电机的驱动原理,我也不啰嗦了,请看这边博客: 二相四线,四相五线,四相六线步进电机接线及驱动方法 , 看完这篇你就知道驱动和接线的原理了。 起初我也为如何接线烦恼,因为有些博客在讲述这些问题的时候没有讲的很透彻。 方法如下: ①用万用表调到欧姆档,用其中一个表笔搭在一个引脚上,依次测其它.

Jodan132的博客 1万+

详解Σ-Δ型ADC拓扑结构的基本原理

现在,总环路滤波器的H(f)具有更大的滚降,Mod 2型的噪声传递函数具有40 dB/十倍频程的上升速率。同样,当正弦波输入为负满量程时,+1和–1之间的转换会减少,输出以–1为主。噪声传递函数是一个高通滤波器函数,提供噪声整形,在DC附近的较低频率,对量化噪声有很强的抑制。H(f)是环路滤波器的函数,定义噪声和信号的传递函数。Σ-Δ型ADC的噪底由热噪声决定,而不受量化噪声的限制。量化噪声为量化器的输入与输出之差。图5. Mod 1 Σ-Δ环路的线性模型(b),包括方程、滤波器、信号和噪声传递函数图。

qq_43416206的博客 1810

python展开 c函数中的宏预处理_【转】C语言宏定义的几个坑和特殊用法

总结一下C语言中宏的一些特殊用法和几个容易踩的坑。由于本文主要参考GCC文档,某些细节(如宏参数中的空格是否处理之类)在别的编译器可能有细微差别,请参考相应文档。宏基础宏仅仅是在C预处理阶段的一种文本替换工具,编译完之后对二进制代码不可见。基本用法如下:1. 标示符别名#define BUFFER_SIZE 1024预处理阶段,foo = (char *) malloc (BUFFER_SIZE)...

weixin_39581995的博客 469

SAP S/4HANA 中 RAP 业务对象接口的消费模式

本文探讨了SAP S/4HANA中RAP业务对象接口的消费模式,重点介绍了通过EML直接调用和CDS投影两种Clean Core开发路径。文章分析了BO Interface作为稳定契约的价值,并提供了BAdI集成、OData服务发布等实际场景案例,同时对比了OData V2/V4的技术选型考量,最后强调了ADT向导使用中的DCL权限注意事项。全文旨在帮助开发者构建升级友好的业务对象消费方案。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 757

Clojure语言十四 常用宏

常用宏infix宏解析人的四则运算书写格式并执行(defmacro infix "Use this macro when you pine for the notation of your childhood" [infixed] (list (second infixed) (first infixed) (last infixed))) 这么用:(infix (1 + 1)) ;

Dean Chen的专栏 2531

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

宏展开的步骤

宏展开在预处理中进行,觉得无非就是替换,很简单。最近遇到一个问题,看了一些关于嵌套宏展开的文章,处处皆学问啊! 这三篇是英文的。 The Macro Expansion Process Macro ssession of TheGNU C Preprocessor macro expansion algorithm  中文资料: The Macro Expansion Proce

lilypp的专栏 2761

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

C/C++中几个宏的简单总结

作者:magictong 环境:VS2005 XPSP3 有人视宏为洪水猛兽,甚至要求完全从C/C++中摒弃,有人则认为宏为至尊宝典,在逻辑代码中都大量使用。个人认为这是个仁者见仁智者见智的问题,摒弃就没必要了,看看宏在MFC和ATL中的一些经典应用,你会发现如果不使用宏

bizhu的专栏 750

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

宏中"#"和"##"的用法

宏中"#"和"##"的用法 一、一般用法 我们使用#把宏参数变为一个字符串,用##把两个宏参数贴合在一起. 用法: #include #include using namespace std; #define STR(s)    #s #define CONS(a,b)  int(a##e##b) int main() {     printf(STR(vck));          // 输

蓬篙人的专栏 799

c语言中 39 n 39,C语言宏中'#'和'##'的用法

在查看linux内核源码的过程中,遇到了许多宏,这里面有许多都涉及到"#"和"##",因此,在网上搜索了一些资料,整理如下:一般用法我们使用#把宏参数变为一个字符串,用##把两个宏参数贴合在一起.用法:#include#includeusing namespace std;#define STR(s) #s#define CONS(a,b) int(a##e##b)int main(){...

weixin_33624741的博客 1018

C中宏#和##的运用

 #include #include #include #include #define f(a,b) a##b#define g(a)  #a#define h(a) g(a)int main()   {       char a = a;          printf("%s/n",g(a)); // a    printf("%s/n

227

[c、c++]宏中"#"和"##"的用法(zz)

[c、c++]宏中"#"和"##"的用法(zz) 宏中"#"和"##"的用法一、一般用法我们使用#把宏参数变为一个字符串,用##把两个宏参数贴合在一起.用法:#include<cstdio>#include<climits>using namespace std; #define STR(s) #s#define CONS(a,b) in...

weixin_30892889的博客 62

宏替换中的#和##的意思

示例代码:

Black—Horse的专栏 1096
上一篇: bash: groupadd: command not found问题
下一篇: 怎么在dll中添加类,和使用dll中的类
WeekyHuang
博客等级 码龄21年 5粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值