最近在使用openssl,发现关于typedef的一个现象,写成下面一个简单的例子:
// OpensslTest2.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <iostream>
typedef struct bignum_st BIGNUM;
int main()
{
BIGNUM *pBNe;
std::cout << "Hello World!\n";
return 0;
}
这里的struct bignum_st是没有定义的,但是依然能够编译过,之前没见过,当然代码里面定义的是指针,如果不是指针,编译不会通过,情理之中是这样,毕竟指针本身没没有指向具体类型,不需要分配具体空间,故没给出定义也是可以编译通过。