C语言中的类型按其组成可以分为简单类型和构造类型,按是否预定义了类型名字和值集可以分为基本类型和非基本类型,按是否加了类型限定符可以分为限定类型和非限定类型。
ANSI C99标准中类型定义的BNF语法如下图。
说明:
1 #define POINTER int *;
2 POINTER a,b;
ANSI C99标准中规定的数据类型如下图所示。
说明:
2. C语言中数据类型的长度
ANSI C99标准中定义了两类(四个)类型修饰符:long/short和unsigned/signed。
C99标准规定,long类型不能比变通类型短,short类型不能比普通类型长。而unsigned与signed的区别在实现上是有无符号的区别,而是使用上是取值范围的区别,两者表示范围相同,但前者全是正数,后者关于0对称。
说明:
3. C语言中数据类型的转换
类型转换分为显示和隐式两种,前者比较简单,这里只讲后者。下面是C99标准中给出的各种类型对象的基本转换规则:
说明:
4. 测试练习
1 char a = 0xb6;
2 short b = 0xb600;
3 int c = 0xb6000000;
4
5 if ( a == 0xb6) puts("a");
6 if ( b == 0xb600) puts("b");
7 if ( c == 0xb6000000) puts("c");
答案:
在VC或x86的gcc下,只会打印出 c ,而linux的gcc则会打印出a和c。
解释:
char在前两者默认是signed char,而后者默认是unsigned char。因此当整型提升时,在前两者的编译器下,三条语句分别变成如下情况:
1 if ( 0xffffffb6 == 0x000000b6) puts("a");
2 if ( 0xffffb600 == 0x0000b600) puts("b");
3 if ( 0xb6000000 == 0xb6000000) puts("c");
而在linux的gcc编译下,则是下面的情况:
1 if ( 0x000000b6 == 0x000000b6) puts("a");
2 if ( 0xffffb600 == 0x0000b600) puts("b");
3 if ( 0xb6000000 == 0xb6000000) puts("c");
文章浏览阅读5.9k次。Ubuntu下默认装了python2.7装pip(安装python包管理器)sudo apt-get install python-pip装Falcon和gunicorn(gunicorn是一个Python WSGI UNIX的HTTP服务器)pip install --upgrade falconpip install gunicorn新建一个_python falcon框架
文章浏览阅读83次。注:转载他人,仅供自己研究学习使用TFTP是用来下载远程文件的最简单网络协议,它其于UDP协议而实现。嵌入式linux的tftp开发环境包括两个方面:一是linux服务器端的tftp-server支持,二是嵌入式目标系统的tftp-client支持。因为u-boot本身内置支持tftp-client,所以嵌入式目标系统端就不用配置了。 xinetd(eXtended InterNET..._"linux tftp安装43 rrq \"s5800_5820x-cmw520-r1810p16.bin\" netascii"
文章浏览阅读794次。点击“简说Python”,选择“星标公众号”福利干货,第一时间送达!@老表家的猫本文授权转载自数据EDTA禁止二次转载大家好,我是老表阅读文本大概需要 10分钟今天,爬..._eetop 反爬虫
文章浏览阅读7.4k次,点赞6次,收藏49次。这里写自定义目录标题为什么要扩展外部SRAM(一)什么是SRAM简介存储器型号容量引脚配置通讯方式读写特性读取数据时序图读取数据的时序要求写入数据时序图写入数据的时序要求(二)什么是FSMC外设简介功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建..._外部sram
文章浏览阅读6.8k次,点赞4次,收藏17次。QT显示图片的方法(部分源码)这个方法太简单网上已经泛滥了,不过我还是写一下吧,无聊。1 首先,新建一个项目,使用界面文件(可以不使用,不过人生苦短,没事我就不麻烦自己了)2使用qt设计器,在界面拖入一个label(我修改其objectname为screen)与一个button。3 转到button的槽,书写相应的程序。 程序如下 需要使用并添加的头文件部分#include#_qt实现拉取一个控件显示一张照片
文章浏览阅读1w次,点赞17次,收藏51次。最近太忙,久未更新,对不住大家。进入正题,我们聊一聊YOLOv4中使用的mosaic数据增强。关于mosaic数据增强相关文章不少,三个月前这个方面的学习开了个头,那时候各路诸侯都是以TensorFlow框架为主,我这里依然坚持分析研究darknet框架下的数据增强。mosaic数据增强原理YOLOv4中在载入图片数据时同步进行mosaic数据增强。mosaic数据增强基本原理就是在训练集中随机选择若干个(一般是4个)图像,经过裁剪拼接形成新的训练集元素,可以缓解训练集元素少或者增强识别能力,是cut_yolo mosaic
文章浏览阅读8.6k次,点赞17次,收藏51次。goto语句我们先看一个代码:int main(){ flag: printf("hehe\n"); printf("haha\n"); goto flag; return 0;}这段代码我们会死循环的一直打印hehe haha,当程序看到flag:时,他不管,直接往下走,到达goto flag时,他又回到第三行代码,就这样一直循环。C语言中提供了可以随意滥用的 goto语句和标记跳转的标号。从理论上 goto语句是没有必要的,实践中没有go_多个goto操作可以是要同一个标签吗?
文章浏览阅读3.3k次。原标题:来了!21考研国家线公布!附详细解读!21考研人最近大概都在焦虑的等待国家线昨天中国农业大学的一条消息直接将“考研国家线”顶上热搜!这不!最新出炉的国家线就来了!21考研国家线公布! 21国家线学硕总分线上涨的门类有:经济学、历史学、理学、工学、农学、工学照顾专业。21国家线专硕总分线上涨的专业有:金融、应用统计、税务、国际商务、保险、资产评估、审计、教育、汉语国际教育、应用心理、体育、会...
文章浏览阅读771次。如果你要使用不带MMU支持的交叉编译器的话,那么需要将vendors/config/armnommu/config.arch文件中“CROSS_COMPILE”的值由“arm-linux-”改为“arm-elf-”,否则下面的make menuconfig配置完成后会报告找不到arm-linux-gcc导致编译失败。[原文:http://www.linuxsir.org/bbs/sho_skyeye漏扫
文章浏览阅读4.5k次,点赞4次,收藏10次。由于安装某个项目的执行文件,提示要卸载MySQL以便它自身MySQL安装,然后我禁用了MYSQL服务,再把这个文件夹删除后,发现还是提示请卸载MYSQL服务。解决步骤:1.以管理员身份运行命令提示符cmd,输入禁用服务方式:net stop mysql //停止服务这里的mysql是你服务中的mysql名(有些可能是mysql5,或者之类)。或者 我的电脑右键->管理->服务,进入后手动禁用。2.输入sc delete mysql,删除服务。3.此时,MYSQL服务只是显示禁用状态,_清理mysql注册表
文章浏览阅读6.6k次,点赞3次,收藏39次。做一个酒店预定用的日期选择案例不多说,先上效果图设计思路:根据年份和月份构建最近6个月的日历,获取每个月的第一天是星期几,空白用空对象填充,每个月需要的格子数 = 每月1号的星期数 + 每月对应的天数。在HTML中遍历日期数据,根据条件判断高亮显示入住时间、离店时间以及两者之间的时间。一下是全部代码(优化在最后). <!-- html代码 --> <view..._小程序订酒店日历选择
文章浏览阅读1.6k次。 心血来潮,分享一波从各个网站上搜集到的佐伊美图,持续更新!(最近更新日期:2019/07/01) 本页面图片较多,若无法全部加载请反复刷新页面,点击图片可查看原始大图!Section1 暮光星灵2018/11/162019/02/152019/03/172019/07/01Section2 ...