有没有一种优雅的方法,根据用户输入只决定一次
Is there an elegant way to decide only one time according to the user input?
最近,我试着写了一个madule。在代码的许多部分,我需要根据用户输入做出决定。例如,我需要根据用户输入的 8 位或 16 位来选择我的缓冲区类型。我实现了这段代码,它完成了我的工作:
if (requestedbitsNumber == 8)
mxMalloc(sizeof(unsigned __int8)*NumberOfElements);
if (requestedbitsNumber == 16)
mxMalloc(sizeof(unsigned __int16)*NumberOfElements);
现在我想知道是否有一种优雅的方法来定义宏之类的东西,而其他人则根据用户输入仅决定一次?像这样:
if (requestedbitsNumber == 8)
#define dataType unsigned __int8
if (requestedbitsNumber == 16)
#define dataType unsigned __int16
并在需要的地方使用datType
。我知道#define
是预处理器指令,甚至在代码编译之前就使用了。我用它来表达我的意思。谢谢。
使用 template<class YourIntegerType>
.
所以你写这样的东西:
if (requestedbitsNumber == 8)
X<unsigned __int8>();
if (requestedbitsNumber == 16)
X<unsigned __int16>();
您可以将 X 实现为函数或类。
要投射指针,你可以在 X 中写一些东西:
pointerToInteger = (YourIntegerType *) myVoidPointer;
相关文章:
- C++如何通过用户输入删除列表元素
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 如何使用用户输入在C++中正确填充2D数组
- C++MySQL C api用户输入行
- 用户定义函数中的指针和输入
- 如何只允许用户输入正整数
- C++如何计算用户输入的数字中的偶数位数
- 通过for循环使用用户输入填充列表
- 这是我尝试让用户将值输入到数组中.然后将其隐藏为大量的星号
- 在C++中,我如何接受不同于同一行的用户输入
- 如果用户输入无效,如何使用字符串变量-C++重复输入命令
- 当用户键入分隔符时,停止getline()输入
- 通过错误处理,在C++中可靠地获得用户十六进制输入
- 当用户在qtablewidget中输入单元格时,如何获得信号?C++
- 显示基于用户输入的整数的字符
- 根据用户输入用字母填充矢量,并将"开始"和"结束"放在四肢
- 我试图制作一个程序,要求用户输入问题和答案,但程序循环不正确
- 如果用户没有输入任何内容或输入错误,如何重新输入用户的输入?
- 为什么在代码块中执行时会跳过输入用户输入的行?
- 使用 for 循环在数组中输入用户