时间:2021-05-20
最近看了intel在linux内核中的驱动,学习到了一个非常有用的小技巧,如下代码:
#define IN#define OUT#define UAdress volatile unsigned int *#define Raw_buffer void *void SetHwiPortsDataReg(IN UAdress Register , IN int value){ _SetHwiPortsDataReg(Register,&value);} void _Out_Put_value(IN UAdress Register, OUT Raw_buffer buffer){ _Out_Put_value(Register,buffer);}这里,IN和OUT的定义可以让代码更容易阅读,如上,IN表示把数据输入,OUT表示取数据,一个小小的技巧。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
nullptr和null均是C语言中的数据类型,其主要区别有: 1、nullptr在C语言中一般为关键字,表示空指针,而NULL只是一个宏定义。 2、nul
C语言中const和C++中的const区别详解C++的const和C语言的#define都可以用来定义常量,二者是有区别的,const是有数据类型的常量,而宏
在C语言中一般用typedef来为回调函数定义别名(参数名)。别名通过宏定义typedef来实现,不是简单的宏替换。可以用作同时声明指针型的多个对象。比如:复制
在之前我们详细介绍了C语言中如何使用宏定义(#ifndef/#define/#endif)来有效避免头文件被重复#include,此方式在C++多文件编程中也很
大家都知道,在C语言中,我们可以通过宏FILE、__LINE__来获取文件名和行号,而在Java语言中,则可以通过StackTraceElement类来获取文件