Chinaunix

标题: 搞笑一下 - C语言中的new和delete [打印本页]

作者: spibit    时间: 2007-07-23 14:54
标题: 搞笑一下 - C语言中的new和delete

  1. #define new(type) (type *)malloc(sizeof(type))
  2. #define delete(ptr) free(ptr)
复制代码


(这两个东西是不会调用构造函数和析构函数的。)
作者: MMMIX    时间: 2007-07-23 15:07
原帖由 spibit 于 2007-7-23 14:54 发表

#define new(type) (type *)malloc(sizeof(type))
#define delete(ptr) free(ptr)


(这两个东西是不会调用构造函数和析构函数的。)

呵呵,这其实也没啥,虽然并不赞成。
作者: zwylinux    时间: 2007-07-23 17:21
每个语言有自己的特点,没必要搞成其他语言的风格,太牵强了就不好
作者: MMMIX    时间: 2007-07-23 17:53
原帖由 emuen_1982 于 2007-7-23 16:11 发表
为了符合C++的习惯吗?
如果Type* ptr = new Type;怎么办?

在一个语言中模拟另外一个语言并不明智,也不容易。
作者: zarcoder    时间: 2007-07-23 19:59
支持  鼓励此想法
实际code的时候需注意易一下哈
作者: tianqio    时间: 2007-07-23 20:42
error-prone...
呵呵
作者: gaocheng    时间: 2007-07-24 02:59
纯搞笑~~
作者: Mart1n    时间: 2007-07-24 11:32
new(char[10])   ~~~ LOL

#include <stdio.h>

#define new(type) (type *)malloc(sizeof(type))

int main()
{
&nbsp;&nbsp;&nbsp;&nbsp;char *str = new(char[10]);

&nbsp;&nbsp;&nbsp;&nbsp;str[0] = '\0';

&nbsp;&nbsp;&nbsp;&nbsp;return 0;
}


$ gcc -c -o temp.o temp.c
temp.c: In function `main':
temp.c:7: error: parse error before '*' token

[ 本帖最后由 Mart1n 于 2007-7-24 11:36 编辑 ]
作者: kuaizaifeng    时间: 2007-07-24 13:12
原帖由 Mart1n 于 2007-7-24 11:32 发表
new(char[10])   ~~~ LOL

#include

#define new(type) (type *)malloc(sizeof(type))

int main()
{
&nbsp;&nbsp;&nbsp;&nbsp;char *str = new(char[10]);

&nbsp;&nbsp;&nbsp;&nbsp;str[0] = '\0 ...

lz搞笑的,不必太认真




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2