C C++语言开发
二流小宝
这个作者很懒,什么都没留下…
展开
-
【笔记】编译报错error: cannot convert ‘main(int, char**)::sockadrr*’ to ‘const sockaddr*’ for
今晚没事写一个demo做测试,编译的时候遇到如下报错:[penny@centos-system socket-demo]$ g++ client.cpp -o client.oclient.cpp: In function ‘int main(int, char**)’:client.cpp:40:68: error: cannot convert ‘main(int, char*原创 2017-08-03 23:09:57 · 10151 阅读 · 0 评论 -
jni如何判断两个jobject是否为同一个java对象
jni如何判断两个jobject是否为同一个java对象 jni开发时有时候需要将java对象缓存到native层,方便native层通过jni的反射方法进行回调操作。通常我们会将回调接口callback在native层存放为global reference全局引用,熟悉jni开发的都知道,jni传入到native 层的jobject生命周期仅仅是函数的生命周期,当jni函数返...原创 2019-09-08 22:52:55 · 1648 阅读 · 0 评论 -
如何避免循环中丑陋的break和continue
如何避免循环中丑陋的break和continue这两天逛知乎,看到一篇帖子《为何部分程序员从不使用 break 或 continue 语句?》目前工作七八年的经历来看,存在即合理,循环中绝对不使用break和continue是有点极端了,过于教条主义,但是滥用或者不注意使用break和continue会严重影响代码的可读性和扩展性,影响后期其他开发人员维护。例如以下代码f...原创 2019-07-21 17:44:51 · 1728 阅读 · 1 评论 -
c++虚函数动态联编需要避免的内存泄漏问题
c++虚函数动态联编需要避免的内存泄漏问题近期项目中跟其他开发组共同开发,底层设备控制模块的同事用C++设计了一个虚类接口,接口定义如下class MyInterface {public: virtual void function() = 0;};然后在继承实现接口时用指针动态联编delete,即class MySubClass : public MyInt...原创 2019-07-21 16:14:18 · 2652 阅读 · 0 评论 -
Android NDK开发如何解决logcat日志打印不全
Android NDK开发如何解决logcat日志打印不全 在Android开发过程中可能会遇到超长日志打印问题,如果日志过长如果一次性Log.d输出就会造成logcat终端只打印一部分,后面的全部打印不出来。具体原因没有查到,应该跟输出的缓存大小有关系。 在java层就遇到过,然后通过分段输出解决。最近开发NDK so发现__android_log_...原创 2019-07-03 23:04:36 · 1623 阅读 · 0 评论 -
C/C++回调方式系列之一 函数指针和函数回调模式
一、函数指针 1. 函数的定义 return_type function_name(parameter list) { function_body } return_type: 返回值,函数一定有返回值,返回值为用return关键字。如果void类型返回值,则直接调用return即可; function_name: 函数名称原创 2017-05-20 15:45:59 · 3482 阅读 · 0 评论 -
C/C++回调方式系列之二class接口回调和lambda程式
在《C/C++回调方式系列之一》中我们总结了函数指针模式回调,这些回调当时比较原始,容易给人一种面向过程的编程的感觉,而且函数指针的格式比较繁琐,可读性相对差一点。本系列二将总结比较推荐的回调使用模式。一、class接口回调模式1. 定义接口C++可以定义virtual纯虚类作为函数接口类,例如定义 Introducer接口class Introducer {public:原创 2017-05-30 20:41:34 · 3905 阅读 · 2 评论 -
linux子进程知道父进程退出的解决方案
在实际开发中难免会处理进程间的关系,最常见的是父子进程的相互监督。父进程等待子进程,或者自进程知道父进程运行是否结束,以方便释放资源。本文章提供了如何实现父进程监听子进程结束的方案,以及子进程如何知道父进程退出的方案。原创 2017-07-13 14:53:05 · 8348 阅读 · 0 评论 -
【笔记】c c++如何打印变量地址
c和c++开发中难免遇到要查看变量地址,查看日志的模式中可以通过printf函数来打印变量地址。本文将给出示例演示如何打印变量地址原创 2017-07-15 15:34:30 · 15417 阅读 · 0 评论 -
【C面试】一道简单的C语言面试题的思考——打印星阵
在毕业刚在第一家的公司的时候,项目经理有一次跟我们吐槽说面试一个水客(就是简历上精通C/C++)。聊了几句话,发现那个面试的人水分很大,现场出了一道笔试题。题目,用c语言打印一个等腰直角三角形效果,三角形腰边长度为四个星星。效果如下**********当然临场发挥给出来的题目,实际上就是在纸上画几个星星,让面试者笔试,不会有“等腰直角三角形”这种描述,这题目是我脑原创 2017-07-16 14:04:39 · 3255 阅读 · 1 评论 -
C C++如何获取当前系统时间
C库中与系统时间相关的函数定义在<time.h>头文件中, C++定义在<ctime>头文件中。获取系统时间的方法都在time头文件里面定义。原创 2017-07-26 23:37:30 · 44580 阅读 · 0 评论 -
android jni调试打印char阵列
在android开发中,用jni有时候需要打印某一个字符串的二进制格式输出,比较友好的输出格式是一个四列,八列,十六列的矩阵格式。原创 2017-08-03 22:39:15 · 3186 阅读 · 0 评论 -
c c++函数资源释放时避免goto的方法
c c++函数资源释放时避免goto的方法开发C/C++模块时,因为很多内存资源都需要自己释放,为了统一一个地方释放资源通常用goto标签在函数退出时释放资源,好处是资源统一释放,不会因为在提前return时分别释放资源导致以后修改代码遗漏释放某些资源导致死锁或者内存泄漏。以下是goto模式void goto_function() { char *buf = NULL;...原创 2019-09-14 00:19:55 · 891 阅读 · 0 评论