C/C++
钱德勒宾
玫瑰吸收光芒,大地按捺清香。
展开
-
const char* 、char const * 与 char *const的区别
const char*、char const*和 char*const的区别原创 2022-07-11 11:09:12 · 186 阅读 · 0 评论 -
C++:通过time(0)计算当前时间
time(0)函数返回自格林尼治标准时间1970年1月1日00:00:00至当前时刻所流逝的秒数。通过下面程序,可以获取通过time(0)得到的时间计算出当前的小时、分、秒。#include <iostream>#include <ctime>using namespace std;int main(){ int totalSeconds = ...原创 2020-04-28 22:35:48 · 8904 阅读 · 1 评论 -
C++:int long float double 类型范围
程序:#include <iostream>#include <climits>#include <cfloat>using namespace std;int main(){ cout << "INT_MIN is :\t" << INT_MIN << endl; cout &l...原创 2020-04-28 22:01:10 · 313 阅读 · 0 评论 -
C语言:快速排序
#include <stdio.h>#include <string.h>#include <strings.h>#include <stdlib.h>#include <stdbool.h>int swap(int *a, int *b){ int c; c = *a; *a = *b; *...原创 2020-04-19 21:36:55 · 229 阅读 · 0 评论 -
linux C :设置/读取 一行内容
c代码:#include <stdio.h>#include <string.h>#include <stdlib.h>#include <errno.h>#include <gtk/gtk.h>#define pri(fmt, ...) do { printf("["__FILE__"][%s]-%d: " ,__FUN...原创 2020-04-02 22:34:21 · 1677 阅读 · 0 评论 -
C语言:printf函数的返回值
说的没错。是printf函数的返回值。printf函数有返回值。函数返回值为整型。若成功则返回输出的字符数,输出出错则返回负值。测试代码:#inlude <stdio.h>int main(){ int i; i = printf("%d \n", printf("abcdef")); printf("%d \n", i); return 0;}函数...原创 2019-11-29 23:06:08 · 1055 阅读 · 0 评论 -
C语言:根据条件遍历Switch中所有case
#include <stdio.h>#include <stdlib.h>int main(int argc, char **argv){ if(argc != 2) { printf("Please Input One Parameter ! \n"); return -1; } int i= atoi(argv[1]); printf("...原创 2019-04-16 19:02:10 · 698 阅读 · 0 评论 -
C语言:程序的CPU占用率过大
本身程序没有多少耗费cpu的操作,但是使用top命令查看的cpu占用率很高。主要原因是在for循环或while(1)循环中没有加sleep,导致占用cpu时间过长。(使用sleep(0)即可)对于pthread_cond_timedwait函数来说,是不怎么占用cpu的。使用例程可以参考如下: struct timespec ts; //超时时间设置 默认3秒 int time_nu...原创 2019-04-02 19:15:44 · 5287 阅读 · 0 评论 -
C语言:Linux下动态库调用主程序函数
测试发现,在动态库中调用,主程序的函数,会有如下报错:symbol lookup error: /usr/lib/***so: undefined symbol: ******解决方法:编译时,加上参数: -Wl,-E博客园上的一遍博客写的很好,学习到很多。http://www.cppblog.com/markqian86/archive/2017/09/27/215269.asp...原创 2019-04-02 19:06:57 · 1950 阅读 · 0 评论 -
C语言:《C专家编程》学习记录
1. 数组和指针1.规则1:“表达式中的数组名”就是指针需要了解:1.方括号[]表示一个取下标操作符。2.在表达式中,指针和数组是可以互换的,因为它们在编译器里的最终形式都是指针。 并且都可以进行取下标操作。(并不在意操作数的先后顺序)举例说明 a[6] = ....; 和 6[a]=....;都是正确的。#include <stdio.h>#include &l...原创 2019-03-27 22:46:44 · 177 阅读 · 0 评论 -
C语言:解析字符串(GPS数据)-strtok函数使用
#include <stdio.h>#include <string.h>void split(char str[]){ char *result = NULL; result = strtok( str, "," ); while( result != NULL ) { printf( "result is %s \n", result ); ...原创 2019-03-27 22:37:05 · 2059 阅读 · 0 评论 -
C语言:创建线程,传递参数的一个错误例子 --- 传地址时使用临时变量保存
错误示范:#include <pthread.h>#include <stdio.h>#include <stdlib.h>#include <pthread.h>#include <sys/types.h>#include <sys/syscall.h>/* 打印宏定义 --- 可加参数 */#defin...原创 2019-03-18 20:01:35 · 1407 阅读 · 0 评论 -
C语言:《c陷阱与缺陷》学习记录
看《c陷阱与缺陷》,书中对define与typedef有如下描述。摘抄如下。考虑如下代码:#define T1 struct foo *typedef struct foo *T2;从上面两个定义来看,T1和T2从概念上完全相同,都是指向结构foo的指针。但是,当我们试图用它们来声明多个变量时,问题就来了:T1 a,b;T2 a,b;第一个声明被扩展为:struct foo ...原创 2019-03-17 22:40:27 · 435 阅读 · 0 评论 -
C语言:字符串转为long long --- atoll函数
源码:#include&lt;stdio.h&gt;#include&lt;stdlib.h&gt;int main(){ unsigned long long tmp_ll; tmp_ll = atoll("0000000000000002"); printf("tmp_ll : %lld \n", tmp_ll); tmp_l原创 2019-03-07 19:13:23 · 6858 阅读 · 0 评论 -
C语言:long long型和8位数组相互转换。
源码:#include &lt;stdio.h&gt;#include &lt;stdlib.h&gt;int main(){ unsigned long long cmd = 0x2211ffeeddccbbaa; unsigned char buf[8] = {0}; unsigned long long tmp ; buf[0]...原创 2019-03-07 19:12:55 · 3654 阅读 · 0 评论 -
C语言:6位BCD时间转为long型时间戳
源码:#include&amp;lt;stdio.h&amp;gt;#include&amp;lt;stdlib.h&amp;gt;#include &amp;lt;time.h&amp;gt;typedef unsigned char BYTE;typedef unsigned int DWORD;typedef unsigned short WORD;#define pri原创 2019-03-07 19:12:15 · 1538 阅读 · 0 评论 -
C语言:单链表 ---《大话数据结构》学习记录
源码:#include <stdio.h> #include <string.h>#include <stdlib.h>#include <time.h>typedef uns...原创 2019-03-14 23:42:31 · 440 阅读 · 0 评论 -
C语言:把不可打印的字符,转为字符串
需要把8个字节大小的数组内容,转为unsigned long型的数值。----时间戳源码:#include <stdio.h>#include <stdlib.h>#include <string.h>#define m_len 8//把不可打印的字符,转为字符串//str的大小至少是buf的两倍int Binary2Char(const ...原创 2019-04-27 11:35:12 · 1099 阅读 · 0 评论 -
C语言:解决strtok两个连续分隔符当作一个提取的问题
strtok函数使用参考:https://blog.csdn.net/weixin_38184741/article/details/88844286解决连续两个分割符当作一个的参考代码: int n; int tmp_len = len; for(n=0; n<tmp_len; n++) //解决:strtok两个连续分隔符当作一个提取的问题 { if(tmp_bu...原创 2019-04-18 19:23:08 · 4181 阅读 · 1 评论 -
C语言:《c和指针》学习记录:宏定义:命令行定义(编译时传参)
14.2.7 命令行定义许多C编译器提供了一种能力,允许你在命令行中定义符号,用于启动编译过程。当我们根据同一个源文件编译一个程序的不同版本时,这个特性特别有用。例如:定义不同长度的数组。int buf[MAX_NUM];在编译程序时,MAX_NUM的值可以在命令行中指定。在UNIX编译器中,-D选项可以完成这项任务。我们可以用两种方式使用这个选项。①: -Dname②: ...原创 2019-05-04 21:59:22 · 1185 阅读 · 0 评论 -
C语言:二维数组
源码:#include <stdio.h>#include <string.h>#include <stdlib.h>void Print(int(*matrix)[3], int matrixSize){ int i, j; for(i=0; i<matrixSize; i++) { for(j=0; j<matrixSize...原创 2019-09-04 22:52:06 · 243 阅读 · 0 评论 -
C语言:计算整数对应二进制中1的个数
待更新:描述不太好,主要功能是,调用函数后,返回二进制整数中1的个数。eg:十进制:1234, 转换为二进制为:10011010010 则返回:5。十进制:99999,转换为二进制为:11000011010011111 ,则返回:10。源码:...原创 2019-08-14 23:50:31 · 1471 阅读 · 0 评论 -
C语言:内存相关
1:#include <stdio.h>#include <string.h>#include <stdlib.h>int function(char *p){ p = (char *)malloc(100);} int main(){ char *str = "helloworld"; char *p...原创 2019-08-14 23:41:32 · 231 阅读 · 0 评论 -
C语言:颜色打印
参考链接: https://blog.csdn.net/lwbeyond/article/details/40588145#include <stdio.h> #define _RED "\033[31m %s...原创 2019-08-08 22:40:37 · 145 阅读 · 0 评论 -
C语言:main函数参数
#include <stdio.h>#include <string.h>int main(int argc, char **argv){ if(2 != argc) { printf("Not Found Param ! \n"); return -1; } printf("argc : %d \n", argc); int i; ...原创 2019-07-31 19:06:10 · 134 阅读 · 0 评论 -
C语言:简单排序:冒泡/简单选择/直接插入
#include <stdio.h>#include <string.h>#include <stdlib.h>#include <stdbool.h>int swap(int *a, int *b){ int c; c = *a; *a = *b; *b = c;}int Print(int buf[], int len)...原创 2019-07-29 22:31:19 · 162 阅读 · 0 评论 -
C语言:编译时指定头文件路径
编译C代码时,有时会报错,提示找不到头文件。此时可以在编译命令中添加c头文件路径:C_INCLUDE_PATH=$PWD/include比如:ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./Android.mk C_INCLUDE_PATH=$PWD/include ...原创 2019-06-12 22:11:29 · 4165 阅读 · 0 评论 -
C语言:时间戳转为6字节BCD码
一、把long型时间戳,转为6位BCD时间源码:#include <stdio.h>#include <string.h>#include <time.h>#include <stdlib.h>int timestamp2bcd(long timestamp, unsigned char bcd_buf[]){//时区不同.手动加八...原创 2019-06-21 19:42:18 · 3220 阅读 · 4 评论 -
C++:国嵌《C++项目精讲班》学习记录
02_C++中的引用①:C语言中的三目运算符返回的是变量值,不能作为左值使用。②:C++中的三目运算符可直接返回变量本身,因此可以出现在程序的任何地方。(如果三目运算符可能返回的值中有一个是常量值,则不能作为左值使用)③:引用相对于指针来说,具有更好的可读性和实用性④:当使用常量对const引用进行初始化时,C++编译器会为常量值分配空间,并将引用名作为这段空间的别...原创 2019-06-09 12:27:50 · 404 阅读 · 0 评论 -
C语言:字符串转为16进制
#include <stdio.h>#include <string.h>#include <stdlib.h>/*// C prototype : void StrToHex(unsigned char *pbDest, unsigned char *pbSrc, int nLen)// parameter(s): [OUT] pbDest - 输出...原创 2019-05-18 08:49:01 · 19179 阅读 · 2 评论 -
C语言:结构体_位操作
源码:#include <stdio.h> struct test_tag{ unsigned int a : 1; unsigned int b : 1; unsigned int c : 1; unsigned int d : 1; unsigned int e : 1; unsigned int f : 1; unsigned int h : 1; uns...原创 2019-09-19 22:56:27 · 1782 阅读 · 0 评论 -
C:串口 select函数使用
接收缓存区:/* 接收长度 */int recv_len; /* 接收缓存区 */char recv_buf[MAX_RECV_BUF];串口接收函数:void Uart1::RecvSerial(int fd){ fd_set fds; struct timeval timeout={1,0}; //select等待1秒,1秒轮询,要非阻塞就置0 int se...原创 2019-02-21 21:43:20 · 2689 阅读 · 0 评论 -
C++:write函数出错
串口打开设置成功,也可以成功接收,但是发送一直出错返回-1。检查了open函数,发现是可读写的:/* 以阻塞的方式打开 */ int fd = open(dev_name_buf, O_RDWR|O_NOCTTY);但就是不能成功发送。检查半天终于发现问题。上述检查的是基类中的虚函数。我在派生类中又重写了open函数,重写的open函数中,是只读模式打开的,导致没有权限去发送。总结...原创 2019-02-20 21:36:43 · 2099 阅读 · 0 评论 -
C语言:预定义,设置打印调试函数
#include &lt;stdio.h&gt; #include &lt;string.h&gt;#define pri(fmt, ...) printf(" --- "__FILE__" --- %s ---原创 2018-12-11 19:33:56 · 452 阅读 · 0 评论 -
C语言:以二进制方式打印数据
代码:#include <stdio.h>#include <string.h>#include <stdlib.h>void decToBin(int num){ if(num>0) { decToBin(num/2); printf("%d",num%2); }}int main(){ int num = 12...原创 2018-12-21 14:40:10 · 13598 阅读 · 1 评论 -
C语言:Linux下获取时间戳
在Unix/Linux系统下,使用gettimeofday函数来获得当前系统的时间戳,精度可达到微秒(microsecond,即μs)级别。#include <stdio.h>#include <sys/time.h>int main(void){ struct timeval stamp; gettimeofday(&st...原创 2018-12-07 18:02:58 · 10050 阅读 · 2 评论 -
C语言: BCD码(时间)和字符串之间的相互转换
代码如下:#include &amp;lt;stdio.h&amp;gt;#include &amp;lt;stdlib.h&amp;gt;typedef unsigned char BYTE;typedef unsigned int DWORD;typedef unsigned short WORD;/*******************************************************原创 2018-11-28 16:58:02 · 9307 阅读 · 2 评论 -
C++ : 鸡兔同笼问题
问题描述:一个笼子里面关了鸡和兔子(鸡有 2 只脚,兔子有 4 只脚,没有例外)。已经知道了笼子里面脚的总数 a,问笼子里面至少有多少只动物,至多有多少只动物。#include <stdio.h>//#include <errno.h>//#include<string.h>#include <stdlib.h>void main...原创 2018-02-23 22:51:50 · 3414 阅读 · 0 评论 -
C++ : 小程序
口袋中有红、黄、蓝、白、黑五种不同颜色的球若干个。每次从口袋中取出3个不同颜色的球,问有多少种取法。并列举出所有情况。#include <iostream.h>#include <stdlib.h>#include <iostream>enum color{red,yellow,blue,white,black};color c;main(){ int i,j,k,n,m=0原创 2017-09-06 22:38:13 · 481 阅读 · 0 评论 -
C语言: 测试程序模板
#include &amp;amp;lt;stdio.h&amp;amp;gt; #include &amp;amp;lt;string.h&amp;amp;gt;typedef unsigned char BYTE;typedef unsigned int DWOR原创 2018-11-26 13:49:10 · 1674 阅读 · 0 评论