在C中实现动态类型

Rau*_*akS 6 c types type-conversion

可能重复:
表示C中的动态类型

我的计算历史课程的一位教授深入研究了明显的类型或类型推断的语言,并且普遍赞扬了潜在类型语言的伟大性(更快的开发时间,动态系统等等).

同一天,在Automata Class,另一位教授说:

通过添加更多方法来执行相同的操作,动态类型使事情变得更加复杂.

我一生中大部分时间都在使用静态类型语言:C/C++/Java - 我唯一接触过的是Shell Coding和Ren'Py.

我的问题是,我可以在C中编写一个简单的程序来实现两者的一些好处吗?

例如,我可以创建Unions来接受所有用户驱动的数据,如下所示:

    typedef union {
        int int_type;
        char char_type;
        //and so on
    } dynamic;

   // Var Creation :
   dynamic data;

   // For unknown return type
   void* function(dynamic data);
Run Code Online (Sandbox Code Playgroud)

我意识到联盟可能会危及类型安全,但这就是我在这里要做的事情.我还能采取什么其他方法?我只想尝试示威.

我试着回答这个问题.但老实说,我无法密切关注这些论点.

如果这个问题看起来很愚蠢,我道歉.

PS

使用下面的建议,我写了这个:http://codepad.org/A9JAX8lD,它基本上没有什么动态,但至少是一个开始.
我想我看到了我的两位教授都想说的话.

orl*_*rlp 5

我的建议是不要尝试使用静态类型语言进行动态类型化.它很可能具有低于标准的性能和非常强大的语法负担.相反,如果您只有经验丰富的静态类型语言,我强烈建议您尝试使用Python.它非常有活力,会让你学会新的思维方式.

最后但并非最不重要的是,Cython也是一种使用C作为中间语言的Python方言.它可以混合静态类型和动态类型,它真的很新鲜.