char

QT之编码风格(low-level)

亡梦爱人 提交于 2020-03-05 15:33:25
原文: https://wiki.qt.io/Qt_Coding_Style 缩进 用4个空格进行缩进 是空格,不是tab 声明变量 在单独的一行声明每一个变量 避免过短或者无意义的变量名(例如:“a”, “rbarr”, “nughdeget”) 单个字符只能用在诸如计数器或者临时变量等作用明显的场合 只有当确定需要这个变量的时候,我们才去声明它 // Wrong int a , b ; char * c , * d ; // Correct int height ; int width ; char * nameOfThis ; char * nameOfThat ; 变量名或者函数名以小写字母开始,变量名后面的每一个连续的单词要用大写字母开始 避免缩写 // Wrong short Cntr ; char ITEM_DELIM = ' ' ; // Correct short counter ; char itemDelimiter = ' ' ; 类总是以大写字母开始。公共类以字母’Q’跟上一个大写字母开始。公共函数大多以字母’q’开始。 首字母缩略词是驼峰式的(e.g. QXmlStreamReader, not QXMLStreamReader) 空格 使用空行将语句组合在一起 始终只使用一个空白行 始终在关键字之后和花括号前使用一个空格 // Wrong if (

MySQL(三)数据类型

北城余情 提交于 2020-03-05 15:16:40
存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己的宽度,宽度是可选的。 一、数值类型 1、整数类型:tinyint smallint mediumint int bigint    作用:存储年龄,等级,id,各种号码等   ps:默认都是有符号的    注意:整型的宽度指的是显示宽度,并不是存储宽度 在mysql5.7中整数类型和5.6是有区别的,5.7中不是默认给你变化的,不能超过宽度范围,超过就告诉你(“id”的值超出范围值),而5.6中过多是最大的,过少是最小的 用zerofill测试整数类型的显示宽度 是用int测试 以下是5.6版本: 无符号: 2、浮点类型:FLOAT,DOUBLE,DECIMAL    作用:体重,薪资,价格    float:单精度浮点数(非准确小数值),m是数字总个数,d是小数点后个数。m最大值为255,d最大值为30    double:双精度浮点数(非准确小数值),m是数字总个数,d是小数点后个数。m最大值为255,d最大值为30    decimal:准确的小数值,m是数字总个数(负号不算),d是小数点后个数。 m最大值为65,d最大值为30。    精确度:       **** 随着小数的增多,精度始终准确 **** 对于精确数值计算时需要用此类型

关于sprintf 和 snprintf的自拷贝

爷,独闯天下 提交于 2020-03-05 13:36:45
朋友出了这样一道题: char buf[100]; memset(buf, 0, 100); strcpy(buf, "hello"); sprintf(buf, "%s world\n", buf); printf("%s\n", buf); 结果是什么? 在不同的编译器上,结果不同,有的显示" world",有的显示"hello world",我们发现,对于这种自拷贝的问题,编译器可以有不同的策略,有的简单的把原先的值抹去,有的会保留,为了详细说明,我们自己动手写一个试试看。 【实践】: 思想:在内部创建一个临时buffer,去代替des,然后,实际操作sprintf/snprint,最后,把buffer中的内容导入des即可。 为了突出重点,这里只是针对%s作了处理,代码如下: test.cpp: #include <stdio.h> #include <string.h> #include <stdlib.h> /* * des : 目标buffer * size : 限定目标buffer的最大尺寸 * strategy : 当目标buffer与源buffer相同时,是否要拷贝原来的值 * 0 不拷贝 * 非0 拷贝 * return : 0 正确 * 非0 失败 */ int mysnprintf(char *des, size_t size, int strategy,

使用Proteus模拟操作HDG12864F-1液晶屏

六眼飞鱼酱① 提交于 2020-03-05 12:02:45
  在Proteus中模拟了89C52操作HDG12864F-1液晶屏,原理图如下: 一、HDG12864F-1官网信息   该液晶屏是Hantronix的产品,官网上搜索出这个型号是系列型号中的一种,各种型号间的区别主要是尺寸不同、有无背光、背光颜色等等。   下面是官网中几个手册的链接: DataSheet 完整版说明书 控制器说明书 ,该液晶屏的控制器使用的是爱普生SED1565系列 使用注意事项 官网照片 二、基本操作函数   根据几个手册提供的信息,“写命令”和“写数据”函数如下: 1 sbit cs = P1^7;//-cs,片选,低电平有效 2 sbit rst = P1^6;//-rst,复位,低电平有效 3 sbit a0 = P1^5;//写命令、写数据控制位。1=Display data; 0=Control data; 4 sbit wr = P1^4;//-Write serial data,写串口数据,低电平有效 5 sbit rd = P1^3;//-Read serial data,读串口数据,低电平有效 6 sbit scl = P1^2;//Shift clock input,时钟输入 7 sbit si = P1^1;//Serial data input,串口数据输入 8 //手册中说了,各种操作都是ns级,不用各种等待命令

Opencv读取图片像素值并保存为txt文件

為{幸葍}努か 提交于 2020-03-05 09:52:56
#include <opencv2/opencv.hpp> #include<vector> #include <fstream> using namespace std; using namespace cv; int main(int argc, char* argv[]) {   const char* imagename = "2.jpg";   //从文件中读入图像   Mat img = imread(imagename);   ofstream outfile("rgb.txt");   //如果读入图像失败   if (img.empty())   {     fprintf(stderr, "Can not load image %s\n", imagename);     return -1;   }   int i, j;   int cPointR, cPointG, cPointB, cPoint;//currentPoint;   for (i = 1; i < img.rows; i++)   {     for (j = 1; j<img.cols; j++)     {       cPointB = img.at<Vec3b>(i, j)[0];       cPointG = img.at<Vec3b>(i, j)[1];      

C# byte[]与char[]、string与char[]、byte[] 与 string 互转

假装没事ソ 提交于 2020-03-05 09:31:36
1. byte array -> char array Byte[] b=new byte[5]{0x01,0x02,0x03,0x04,0x05}; Char[] c=Encoding.ASCII.GetChars(b); 2. char array -> byte array Char[] c=new char[5]{a,b,c,d,e}; Byte[] b=Encoding.Default.GetBytes(c); Char[] c=new char[5]{a,b,c,d,e}; Byte[] b=Encoding.Default.GetBytes(c); 3.string 转换成 Char[] string ss="abcdefg";&nbsp char[] cc=s.ToCharArray();&nbsp string ss="abcdefg"; char[] cc=s.ToCharArray(); 4.Char[] 转换成string using System.Text; StringBuilder sb=new StringBuilder(); foreach(char c in cc) { sb.Append(c); } string s=sb.ToString(); using System.Text; StringBuilder sb=new

uboot环境变量实现分析

末鹿安然 提交于 2020-03-05 08:16:13
u-boot 的环境变量 用来存储一些经常使用的参数变量, uboot 希望将环境变量存储在静态存储器中(如 nand nor eeprom mmc )。 其中有一些也是大家经常使用,有一些是使用人员自己定义的,更改这些名字会出现错误,下面的表中我们列出了一些常用的环境变量: bootdelay 执行自动启动的等候秒数 baudrate 串口控制台的波特率 netmask 以太网接口的掩码 ethaddr 以太网卡的网卡物理地址 bootfile 缺省的下载文件 bootargs 传递给内核的启动参数 bootcmd 自动启动时执行的命令 serverip 服务器端的 ip 地址 ipaddr 本地 ip 地址 stdin 标准输入设备 stdout 标准输出设备 stderr 标准出错设备 上面这些是 uboot 默认存在的 环境变量,uboot 本身会使用这些环境变量来进行配置。我们可以自己定义一些环境变量来供我们自己 uboot 驱动来使用。 Uboot 环境变量的设计逻辑是在启动过程中将 env 从静态存储器中读出放到 RAM 中,之后在 uboot 下对 env 的操作(如 printenv editenv setenv )都是对 RAM 中 env 的操作,只有在执行 saveenv 时才会将 RAM 中的 env 重新写入静态存储器中。 这种设计逻辑可以加快对 env

8种基本数据类型及取值范围

旧巷老猫 提交于 2020-03-05 07:21:56
整型: byte:-2^7 ~ 2^7-1,即-128 ~ 127。1字节。Byte。 末尾加B short:-2^15 ~ 2^15-1,即-32768 ~ 32767。2字节。Short。 末尾加S 有符号int:-2^31 ~ 2^31-1,即-2147483648 ~ 2147483647。4字节。Integer。 无符号int:0~2^32-1。 long:-2^63 ~ 2^63-1,即-9223372036854774808 ~ 9223372036854774807。8字节。Long。 末尾加L 。(也可以不加L) 浮点型: float:4字节。Float。 末尾加F 。(也可以不加F) double:8字节。Double。 字符型: char:2字节。Character。 布尔型: boolean:Boolean。 类型转换: boolean类型与其他基本类型不能进行类型的转换(既不能进行自动类型的提升,也不能强制类型转换), 否则,将编译出错 。 byte型不能自动类型提升到char,char和short直接也不会发生自动类型提升(因为负数的问题) ,同时,byte当然可以直接提升到short型。 当对小于int的数据类型(byte, char, short)进行运算时,首先会把这些类型的变量值强制转为int类型进行计算,最后会得到int类型的值。因此

字符加密变换

泄露秘密 提交于 2020-03-05 07:20:26
string Greeting="Hello World"; Console.WriteLine(Greeting); for (int i=(int)'z';i>=(int)'a';i--) { char Old=(char)i; char New=(char)(i+1); Greeting=Greeting.Replace(Old,New); } for (char i='Z';i>='A';i--) { char Old=(char)i; char New=(char)(i+1); Greeting=Greeting.Replace(Old,New); } Console.WriteLine(Greeting); //TransLate content for (char i='b';i<'{';i++) { char Old=(char)i; char New=(char)(i-1); Greeting=Greeting.Replace(Old,New); } for (char i='B';i<'[';i++) { char Old=(char)i; char New=(char)(i-1); Greeting=Greeting.Replace(Old,New); } Console.WriteLine(Greeting); } 来源: https://www

如何使用JSP+MySQL创建留言本

感情迁移 提交于 2020-03-05 07:14:23
如何使用JSP+MySQL创建留言本 作者:unknown 更新时间: 2005-03-17 说明:用JSP+MySQL数据库创建留言本,首先要创建MySQL数据库,关于MySQL的使用请到 http://pinghui.51.net/download/012mysql.chm 下载教程。现在为了说明的需要,我们假设数据库已经建立完成,数据库的名称是pinghui,其中有comment表是记录留言信息的。 数据库的结构为: +-----------+-------------+------+-----+---------------------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------+-------------+------+-----+---------------------+----------------+ | userid | int(11) | | PRI | 0 | auto_increment | | username | char(20) | | | | | | sex | char(2) | | | | | | address | char(40) | YES | | NULL | | | ip | char(15) | | | | | |