C语法简单测试
1、未初始化的枚举变量
/* uninitialized-enum.c */
#include <stdio.h> enum color{white = , black, blue}; int main(void)
{
enum color bird; printf("bird = %d\n", bird); return ;
}
输出结果:
$ ./uninitialized-enum
bird = 2130567168
$
2、十六进制数与switch语句测试
/* test.cpp */
#include <iostream> using namespace std; enum color{green, yellow, red, blue, black}; int main(void)
{
int i = 0x3e - ; cout << "i = " << i << endl; color bird = blue;
switch(bird){
case green:
break;
case yellow:
break;
cout << "Hello, world!" << endl;
case red:
break;
cout << "Hello, world!" << endl;
case blue:
cout << "Yes, the color of this bird is blue!" << endl;
break;
default:
cout << "No, byebye!" << endl;
break;
} return ;
}
输出结果:
$ ./test
i = 61
Yes, the color of this bird is blue!
$
3、sizeof关键字和处理器的字节序
#include <stdio.h> int main(void)
{
char str[] = { 0x01, 0x00, 0x00, 0x00, 0x04, 0x01, 0x06, 0x00, 0x01, 0x02, 0x03, 0x04, 0x10, 0x10 };
unsigned ret, lid; ret = sizeof str;
printf("ret = %d\n", ret);
lid = *(unsigned *)(str+);
printf("lid = %d\n", lid); return ;
}
备注:Intel Core处理器的字节序是小端序。
输出结果:
$ ./test
ret = 14
lid = 393476 (0x00, 0x06, 0x01, 0x04)
$
4、C语言中的整数
#include <stdio.h> int main(void)
{
int i = , value; if((i << ) == 0x0138)
printf("YES!\n");
else
printf("NO!\n"); value = i + 0x0138;
printf("value = %d\n", value); return ;
}
输出结果:
$ ./test
YES!
value = 390
$
从输出结果可以看出,十进制数据与十六进制数据可以直接进行运算,而不需要经过转换。
另外,C语言中的整数有多种形式,二进制数、八进制数、十进制数、十六进制数、字符('A')都是整数,可以使用任何一种形式,或者在任何形式的整数之间进行整数运算。
5、循环结构、switch结构中的break语句
#include <stdio.h> int main(void)
{
enum color {yellow, green, red, black};
enum color bird = red; while(){ switch(bird){
case yellow:
printf("the bird is yellow!\n");
break;
case green:
printf("the bird is green!\n");
break;
case red:
printf("the bird is red!\n");
break;
default:
printf("the bird is black!\n");
break;
} printf("use a break to get out of while!\n");
break;
} printf("we are now at outside of while loop!\n"); return ;
}
输出结果:
$ ./test
the bird is red!
use a break to get out of while!
we are now at outside of while loop!
$
从输出结果可以看出:switch中的break只对switch结构有用,对更外层的while循环无用;while循环中break语句可以跳出while循环。
因此,我们有如下结论:
1、switch结构并非循环结构,遇到break则不再执行该结构中剩下的语句;
2、break语句可以跳出当前的循环结构(一层)。
6、结构体的存储空间
#include <stdio.h>
typedef struct {
unsigned request;
unsigned len;
unsigned char data[];
}rms_message_t;
int main(void)
{
printf("sizeof(unsigned) = %d\n", sizeof(unsigned));
printf("sizeof(unsigned char) = %d\n", sizeof(unsigned char));
printf("sizeof(rms_message_t) = %d\n", sizeof(rms_message_t));
return ;
}
输出结果:
$ ./test
sizeof(unsigned) = 4
sizeof(unsigned char) = 1
sizeof(rms_message_t) = 8
$
C语法简单测试的更多相关文章
- TODO:Golang UDP连接简单测试慎用Deadline
TODO:Golang UDP连接简单测试慎用Deadline UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interco ...
- .net orm比较之dapper和Entity Framework6的简单测试比较
.net orm比较之dapper和Entity Framework6的简单测试比较
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(37)-文章发布系统④-百万级数据和千万级数据简单测试
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(37)-文章发布系统④-百万级数据和千万级数据简单测试 系列目录 我想测试EF在一百万条数据下的显示时间! ...
- ORACLE 数据库简单测试
ORACLE 数据库简单测试 操作系统:Windows 7 – ORACLE:oracle database 10.2.0.4 一.目的 测试 启动监听程序.数据库 非同一个用户的情况,用户是否可以 ...
- Javascript的简单测试环境
在<JavaScript忍者秘籍>2.4测试条件基础知识中,作者给出了一个精简版的assert和assert组的实现,对于初学者而言,这无疑是一个很好的例子,既让我们得到了一个好用的小工具 ...
- struts2+hibernate+spring注解版框架搭建以及简单测试(方便脑补)
为了之后学习的日子里加深对框架的理解和使用,这里将搭建步奏简单写一下,目的主要是方便以后自己回来脑补: 1:File--->New--->Other--->Maven--->M ...
- struts2+hibernate+spring配置版框架搭建以及简单测试(方便脑补)
为了之后学习的日子里加深对框架的理解和使用,这里将搭建步奏简单写一下,目的主要是方便以后自己回来脑补: 1:File--->New--->Other--->Maven--->M ...
- [20190423]简单测试latch nowilling等待模式.txt
[20190423]简单测试latch nowilling等待模式.txt --//我对这个问题的理解就是如果参数willing=0,表示无法获取该latch,直接退出,再寻找类似的latch.--/ ...
- Javascript学习-简单测试环境
Javascript学习-简单测试环境 在<JavaScript忍者秘籍>2.4测试条件基础知识中,作者给出了一个精简版的assert和assert组的实现,对于初学者而言,这无疑是一个很 ...
随机推荐
- Git初识学习
初始化一个Git仓库,使用git init命令. 添加文件到Git仓库,分两步: 使用命令git add <file>,注意,可反复多次使用,添加多个文件: 使用命令git commit ...
- 线段树(segment_tree)
线段树之——区间修改区间查询 1.概述 线段树,也叫区间树,是一个完全二叉树,它在各个节点保存一条线段(即“子数组”),因而常用于解决数列维护问题,基本能保证每个操作的复杂度为O(lgN). 线段树是 ...
- C语言多种方法求解字符串编辑距离问题的代码
把做工程过程经常用的内容记录起来,如下内容段是关于C语言多种方法求解字符串编辑距离问题的内容. { if(xbeg > xend) { if(ybeg > yend) return 0; ...
- SQL 函数 coalesce()、row_number()的用法
coalesce()函数 ①用途: 将空值替换成其他值 返回第一个非空值 ②表达式: COALESCE是一个函数, (expression_1, expression_2, ...,expressio ...
- 【原】HDMI输出接口传输速率计算
1.1080P60为例: 三组差分线 R.G.B,每组速率: R:1920x1080(像素)x10(有效位为8bit,按10bit传输)x60(帧率)= 1244160000 ~~1.25G bit/ ...
- mybatis 动态sql和参数
mybatis 动态sql 名词解析 OGNL表达式 OGNL,全称为Object-Graph Navigation Language,它是一个功能强大的表达式语言,用来获取和设置Java对象的属性, ...
- volley+okhttp封装,一行代码就可访问网络
volley+okhttp封装,一行代码就可访问网络 前言: 我写这个可能不会完全的教会你去怎么封装一个网络框架,我的目的在于让你不需要你自己封装就可以访问网络,或者说互相学习也可以,我只是想让你大概 ...
- Log4Net 常见错误提示(不断更新中)
1. 无法识别log4中的节点,如:<section>等 解决办法:在configrition中直接申明log4 <configSections><!--必须为第一个节点 ...
- sublime和vscode 格式化Json ——两步走
目录 1.问题来源 2.sublime安装插件方式 3.使用方式 4.扩展:对于软件vscode 1.问题来源 最近做数据匹配任务,需要生成很多json文件,但是每个json文件又太大,想要逐字段(k ...
- 如何使用git拉取代码及提交代码(详细)
分享给刚进入公司的小伙伴们鸭! 第一步:首先在本地安装git和TorToiseGit小乌龟,svn同理,也可以安装下TorToiseGit中文语言包,前期可减少出错,后期熟悉了可直接用命令行pull代 ...