C语言一窝端 ---持续更新

C语言一窝端 —持续更新

内容

text4C = '''
/*
migration n.迁移; 移居; 迁徙; (计算机系统的)改变; (程序或硬件的)迁移,转移;
[例句]Swallows begin their migration south in autumn. 
燕子在秋季开始向南方迁移。
*/

/*
C 语言是一种通用的、面向过程式的计算机程序设计语言。
1972 年,为了移植与开发 UNIX 操作系统,丹尼斯·里奇在贝尔电话实验室设计开发了 C 语言。
当前最新的 C 语言标准为 C18。

关于C
C 语言标准是于 1988 年由美国国家标准协会(ANSI,全称 American National Standard Institute)制定的。
截至 1973 年,UNIX 操作系统完全使用 C 语言编写。
当今最流行的 Linux 操作系统和 RDBMS(Relational Database Management System:关系数据库管理系统) MySQL 都是使用 C 语言编写的。

C11(也被称为C1X)指ISO标准ISO/IEC 9899:2011。在它之前的C语言标准为C99。
新特性
对齐处理(Alignment)的标准化(包括_Alignas标志符,alignof运算符,aligned_alloc函数以及<stdalign.h>头文件)。
_Noreturn 函数标记,类似于 gcc 的 __attribute__((noreturn))。
_Generic 关键字。

多线程(Multithreading)支持,包括:
_Thread_local存储类型标识符,<threads.h>头文件,里面包含了线程的创建和管理函数。
_Atomic类型修饰符和<stdatomic.h>头文件。

增强的Unicode的支持。基于C Unicode技术报告ISO/IEC TR 19769:2004,增强了对Unicode的支持。
包括为UTF-16/UTF-32编码增加了char16_t和char32_t数据类型,提供了包含unicode字符串转换函数的头文件<uchar.h>。
删除了gets() 函数,使用一个新的更安全的函数gets_s()替代。
增加了边界检查函数接口,定义了新的安全的函数,例如 fopen_s(),strcat_s() 等等。
增加了更多浮点处理宏(宏)。

匿名结构体/联合体支持。这个在gcc早已存在,C11将其引入标准。
静态断言(Static assertions),_Static_assert(),在解释 #if 和 #error 之后被处理。
新的 fopen() 模式,("…x")。类似 POSIX 中的 O_CREAT|O_EXCL,在文件锁中比较常用。
新增 quick_exit() 函数作为第三种终止程序的方式。当 exit()失败时可以做最少的清理工作。

C 环境设置【略】

*/

digraph graph4C {
    graph [compound = true rankdir = LR]
    node [fontsize = 11 fontname = "SimSun" shape = box]
    edge [fontname = "SimsSun" shape = box]
    
    "C语言学习图" [shape = "plaintext" fontsize = 15]
    "C基本语法"
    "C的令牌(Token)"
    "分号 ;"
    "注释"
    "单行注释"
    "多行注释"
    "标识符"
    "关键字"
    keyword4C [label= "" image="image\\keyword4C.png" imagepath="" imagescale=true shape=box style=dashed]
    /*
    # label设为空字符串,否则其将出现在图片中!
    # image 与(已弃用)shapefile属性不同,图像被视为节点内容而不是整个节点。特别是,图像可以包含在任何形状的节点中,而不仅仅是矩形。
    # 当imagescale=True 报错 TypeError: expected string or bytes-like object
    # If imagescale=true, the image is uniformly scaled (i.e., its aspect ratio is preserved) to fit inside the node. 
    # At least one dimension of the image will be as large as possible given the size of the node.
    # imagepath image指定要在其中查找由属性指定的图像文件的目录列表,或者使用类似 HTML 的标签IMG中的元素。
    # imagepath应该是(绝对或相对)路径名的列表,每个路径名由分号;(对于 Windows)或冒号: (所有其他操作系统)分隔。
    # 找到给定名称文件的第一个目录将用于加载图像。
    # 如果imagepath未设置,则图像文件的相对路径名将根据当前工作目录进行解释。
    # rotate="40" 旋转功能暂时不考虑!!
    */
    
    "C中的空格"
    
     "C的令牌(Token)的说明" [shape=none, margin=0, label = <
    <table width="100%" border="1" cellspacing="0"  cellpadding="1" bgcolor="white">
    <!--border单元格边;cellspacing单元格间距:单元格与单元格之间的距离;cellpadding单元格边距:单元格里面的内容与边的距离。-->
    <!--HTML 转义字符:在 HTML 中拥有特殊含义的字符,比如小于号,大于号,
    如果希望浏览器正确地显示这些字符,必须在 HTML 源码中插入字符实体。
    字符实体有三部分:一个和号 (&),一个实体名称,或者 # 和一个实体编号,以及一个分号 (;)。-->
    <tr>
    <td align="center"><b>令牌</b></td> <!--<b>为黑体-->
    <td align="center"><b>说明</b></td>
    </tr>
    <tr>
    <td port="here1">C</td><td>C 是区分大小写的编程语言</td>
    </tr>
    <tr>
    <td port="here2">单行注释</td><td>双斜杠开头</td>
    </tr>
    
    <tr>
    <td port="here3">多行注释</td><td>双斜杠内的两米字号内,不能在注释内嵌套注释</td>
    </tr>
    
    <tr>
    <td port="here4">标识符</td>
    <td>用来标识变量、函数,或任何其他用户自定义项目的名称,<br/>
    以字母 A-Z 或 a-z 或下划线 _ 开始,<br/>后跟零个或多个字母、下划线和数字(0-9)</td>
    </tr>
    
    <tr>
    <td port="here5">C中的空格</td>
    <td>只包含空格的行,被称为空白行,<br/>可能带有注释,C 编译器会完全忽略它。</td>
    </tr>
    </table>>]
    
    "C基本语法" -> "C的令牌(Token)"
    "C的令牌(Token)" -> "分号 ;"
    "C的令牌(Token)" -> "注释"
    "注释" -> "单行注释"
    "注释" -> "多行注释"
    "C的令牌(Token)" -> "标识符"
    "C的令牌(Token)" -> "关键字"
    "关键字" -> keyword4C
    "C的令牌(Token)" -> "C中的空格"
    "单行注释" -> "C的令牌(Token)的说明":here2
    "多行注释" -> "C的令牌(Token)的说明":here3
    "标识符" -> "C的令牌(Token)的说明":here4
    "C中的空格" -> "C的令牌(Token)的说明":here5
    
    "C数据类型"
    "类型与描述" [label= "" image="image\\datatype4C.png" imagepath="" imagescale=true shape=box style=dashed]
    "C数据类型" -> "类型与描述"
    "基本类型" [label= "" image="image\\basetype4C.png" imagepath="" imagescale=true shape=box style=dashed]
    "void类型" [label= "" image="image\\voidtype4C.png" imagepath="" imagescale=true shape=box style=dashed]
    "类型与描述" -> "基本类型"
    "类型与描述" -> "void类型"
    subgraph cluster_0 {
        graph [compound =true style=dashed]
        node [fontsize = 11 fontname = "SimSun" shape = box]
        edge [fontname = "SimsSun" shape = box]
        label = ""
    }
}
'''

dot = graphviz.Source(text4C)
dot.render(outfile='graph4C.png')
dot

逻辑图 the map of C language

在这里插入图片描述

参考

https://www.runoob.com/cprogramming/c-tutorial.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值