c_cpp 从c中的未被发现的指针中获取值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 从c中的未被发现的指针中获取值相关的知识,希望对你有一定的参考价值。

#include "stdio.h"
#include "stdlib.h"

//generic macros for accessing casted pointer types

//macro for Base
#define BASE_HANDLE int type; \
  struct Base* next; \
  struct Base* prev;

struct Base {
  BASE_HANDLE
};

typedef struct Base Base;

//object that represents integer.
typedef struct {
  BASE_HANDLE
  long value;
} IntObj;

//constructs new int casted back to base
Base* IntObj_new(long value)
{
  IntObj* iob = malloc(sizeof(IntObj));
  iob->type = 1;
  iob->value = value;
  return (Base*)iob;
}

#define IntObj_GET_INT(bs) ((IntObj*)bs)->value

int main(void) {
  Base* foo = IntObj_new(7);
  
  printf("The number is %d\n", IntObj_GET_INT(foo));
  return 0;
}

以上是关于c_cpp 从c中的未被发现的指针中获取值的主要内容,如果未能解决你的问题,请参考以下文章

这是C ++中的未定义行为从悬空指针调用函数

c_cpp 允许通过C中的void指针从任何类型访问字节数组

php 获取2018年10月未被管理员创建的未被删除的重力表单条目

自己定义Application的未捕获异常处理

c_cpp 指针迭代与C中的int指针

c_cpp 从两个排序的数组中获取第k个最小元素。数组中的前k个