摘要: C的NULL在C语言中,我们使用NULL表示空指针,也就是我们可以写如下代码:int *i = NULL;foo_t *f = NULL;实际上在C语言中,NULL通常被定义为如下:#define NULL ((void *)0)也就是说NULL实际上是一个void *的指针,然后吧void *指针赋值给int *和foo_t *的指针的时候,隐式转换成相应的类型。而如果换做一个C++编译器来编译的话是要出错的,因为C++是强类型的,void *是不能隐式转换成其他指针类型的,所以通常情况下,编译器提供的头文件会这样定义NULL:#ifdef __cplusplus ---简称:cpp c++ 阅读全文
posted @ 2014-03-19 16:26 porter_代码工作者 阅读(86516) 评论(3) 推荐(14)
摘要: // 重启应用 public void restartApp() { Intent intent = new Intent(); // 参数1:包名,参数2:程序入口的activity intent.setClassName(getPackageName(), "包名"); PendingIntent restartIntent = PendingIntent.getActivity( getApplicationContext(), 0, intent, Intent.FLAG_ACTIVITY_NEW_TASK); AlarmManager mgr = (Alarm.. 阅读全文
posted @ 2014-03-19 15:36 porter_代码工作者 阅读(1404) 评论(0) 推荐(0)
摘要: 时常在cpp的代码之中看到这样的代码:#ifdef __cplusplusextern "C" {#endif//一段代码#ifdef __cplusplus}#endif 这样的代码到底是什么意思呢?首先,__cplusplus是cpp中的自定义宏,那么定义了这个宏的话表示这是一段cpp的代码,也就是说,上面的代码的含义是:如果这是一段cpp的代码,那么加入extern "C"{和}处理其中的代码。 要明白为何使用extern "C",还得从cpp中对函数的重载处理开始说起。在c++中,为了支持重载机制,在编译生成的汇编码中,要对函 阅读全文
posted @ 2014-03-19 14:58 porter_代码工作者 阅读(400) 评论(0) 推荐(0)