在C中运行时转换,是否可以通过?

时间:2015-09-29 07:38:48

标签: c pointers casting switch-statement

假设我有一个指向内存的指针" pCurrentaddress",每个对指针的访问都有不同的类型:uint8,uint16,uint32。

typedef unsigned char       uint8; 
typedef unsigned short int  uint16; 
typedef unsigned long  int  uint32; 

我有一个值为8,16,32的vTYPE var,我想根据vTYPE进行转换,我不想使用switch-case,因为它会花费我的代码大小。

switch ( vTYPE )  
 { 
    case 32:            
    (*((uint32*)pCurrentaddress))++; 
    break; 
    case 16:             
    (*((uint16*)pCurrentaddress))++; 
    break; 
    case 8:             
    (*((uint8*)pCurrentaddress))++; 
    break; 
 }   

任何更好的解决方案? TNX。

0 个答案:

没有答案