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语法简单测试的更多相关文章

  1. TODO:Golang UDP连接简单测试慎用Deadline

    TODO:Golang UDP连接简单测试慎用Deadline UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interco ...

  2. .net orm比较之dapper和Entity Framework6的简单测试比较

    .net orm比较之dapper和Entity Framework6的简单测试比较

  3. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(37)-文章发布系统④-百万级数据和千万级数据简单测试

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(37)-文章发布系统④-百万级数据和千万级数据简单测试 系列目录 我想测试EF在一百万条数据下的显示时间! ...

  4. ORACLE 数据库简单测试

    ORACLE 数据库简单测试 操作系统:Windows 7 – ORACLE:oracle database 10.2.0.4 一.目的 测试 启动监听程序.数据库  非同一个用户的情况,用户是否可以 ...

  5. Javascript的简单测试环境

    在<JavaScript忍者秘籍>2.4测试条件基础知识中,作者给出了一个精简版的assert和assert组的实现,对于初学者而言,这无疑是一个很好的例子,既让我们得到了一个好用的小工具 ...

  6. struts2+hibernate+spring注解版框架搭建以及简单测试(方便脑补)

    为了之后学习的日子里加深对框架的理解和使用,这里将搭建步奏简单写一下,目的主要是方便以后自己回来脑补: 1:File--->New--->Other--->Maven--->M ...

  7. struts2+hibernate+spring配置版框架搭建以及简单测试(方便脑补)

    为了之后学习的日子里加深对框架的理解和使用,这里将搭建步奏简单写一下,目的主要是方便以后自己回来脑补: 1:File--->New--->Other--->Maven--->M ...

  8. [20190423]简单测试latch nowilling等待模式.txt

    [20190423]简单测试latch nowilling等待模式.txt --//我对这个问题的理解就是如果参数willing=0,表示无法获取该latch,直接退出,再寻找类似的latch.--/ ...

  9. Javascript学习-简单测试环境

    Javascript学习-简单测试环境 在<JavaScript忍者秘籍>2.4测试条件基础知识中,作者给出了一个精简版的assert和assert组的实现,对于初学者而言,这无疑是一个很 ...

随机推荐

  1. 无法启动iis express web 服务器

    删除项目文件夹下的隐藏文件夹 (.vs)文件

  2. 彻底搞懂Gradle、Gradle Wrapper与Android Plugin for Gradle的区别和联系

    首先用一段通俗易懂但是不是非常专业的话描述一下三者的概念.区别和联系. Gradle是个构建系统,能够简化你的编译.打包.测试过程.熟悉Java的同学,可以把Gradle类比成Maven. Gradl ...

  3. 【安卓进阶】Scroller理解与应用

    项目中有个需求,就是在RecyclerView的item中进行侧滑,一开始同事推荐了一个开源库,使用起来确实也方便好用,直接在布局作为父布局即可实现侧滑. 自己也非常好奇这个开源库到底用了什么API能 ...

  4. python3学习笔记

    之前一直使用python2.7,最近打算学习下python3教程,再此记录下一些要点(未完待续...) 1.缩进 缩进有利有弊.好处是强迫你写出格式化的代码,但没有规定缩进是几个空格还是Tab.按照约 ...

  5. JS-函数作用域

    如果变量在函数内没有声明(没有使用 var 关键字),该变量为全局变量.

  6. JAVA-变量

    静态变量只能在类主体中定义,不能在方法中定义

  7. cowboy源码分析(三)

    上接 cowboy源码分析(二) 我们接着分析cowboy_protocol.erl的request/7模块 -module(cowboy_protocol). %% API.-export([sta ...

  8. 安装pyspider遇到的坑

    pyspider是国人写的一款开源爬虫框架,个人觉得这个框架用起来很方便,至于如何方便可以继续看下去. 作者博客:http://blog.binux.me/ 安装pyspider安装pyspider: ...

  9. js实现原生选项卡

        <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title ...

  10. Word中使用宏处理表格内容 小记

    不解释,直接上代码... Sub 删除表格列WT0818() '此符号是注释 ' 删除表格列WT0818 宏 ' For Each tb In ActiveDocument.Tables  //wor ...