符号函数

2019/8/19 C语言回顾(1)

最后都变了- 提交于 2019-11-27 22:17:06
一、冯诺依曼   将计算机分为5个部分   (1)输入设备:键盘、鼠标   (2)输出设备:显示屏   (3)存储器:     内存(运行内存)RAM:内存条     外存 ROM: 硬盘、光盘、u盘、sd卡     寄存器:在cpu内部 、提高程序的运行效率    (4)运算器    (5)控制器   注:运算器和控制器集成为cpu 二、进制转换   1、十进制 逢十进一 78 = 8*10^0 + 7*10*^1   二进制 逢2进一 1001110   八进制 逢8进1   十六进制 0,1,。。。。a,b,c,d,e,f   3位二进制数可以视为一位8进制数   4位二进制数可以视为一位十六进制数   2、 ascii码表   0 === '\0'   10 === '\n'   32 === ' '   48 === '0'   65 === 'A'   97 === 'a'   3、词法符号 关键字   c语言中一共有32个关键字: auto 声明自动变量 short 声明短整型变量或函数 int 声明整型变量或函数 long 声明长整型变量或函数 float 声明浮点型变量或函数 double 声明双精度变量或函数 char 声明字符型变量或函数 struct 声明结构体变量或函数 union 声明共用数据类型 enum 声明枚举类型 typedef

LNK2019 无法解析的外部符号 该符号在函数 _main 中被引用

霸气de小男生 提交于 2019-11-27 04:41:38
学习严蔚敏的数据结构,使用vc6新建项目,文件名分别如下: SequenceStack.cpp SequenceStack.h Status.h TestCase.c 报错如下: xilink6: executing 'D:\PROGRA~2\vc6.0\VC98\Bin\link.exe' TestCase.obj : error LNK2001: unresolved external symbol _InitStack_Sq Debug/03_01_SequenceStack.exe : fatal error LNK1120: 1 unresolved externals 代码一切都是正确的。后来发现原因, 文件名引起,把TestCase.c改成TestCase.cpp就好了 因为cpp默认使用c++,c使用asni c,猜想应该是c++和c的cdecl(c语言调用约定)导出函数申明方式不一致,例如c++导出函数???@xyz@Init,c却找不到。 来源: https://www.cnblogs.com/passedbylove/p/11343654.html

Python 3 复习各种符号

若如初见. 提交于 2019-11-26 20:09:31
关键字(Keywords): 关键字 描述 示例 and 逻辑:与 True and False == False not 逻辑:非 not True == False or 逻辑:或 True or False == True pass 表示空代码块 del empty(): pass del 可以删除变量,字典和列表中特定的索引 X = [‘a’, ‘b‘, ’c‘, ’d‘, ’e‘] ;del x,删除变量x;del X[0],删除列表第1个值;del x[0:2],删除列表第1-2个值,[2]对应的第3个值不删除 import 将模块导入当前文件以供使用 import os is 类似于==,判断是否一样 1 is 1 == True print 打印字符串 print(“Hello World!!!”) if if 条件 if: X; elif: Y; else:J elif else if 条件 if: X; elif: Y; else:J else else 条件 if: X; elif: Y; else:J for 针对物件集合的循环 for X in Y: pass while while循环 while X:pass in for循环的一部分,也可以x是否在y中的条件判断 for X in Y: pass 以及 1 in [1] == True return

Linux内核驱动模块【转】

谁说胖子不能爱 提交于 2019-11-26 18:33:43
原文:http://www.cnblogs.com/garybo/archive/2008/11/04/1326066.html Linux设备驱动会以内核模块的形式出现,因此,学会编写Linux内核模块编程是学习Linux设备驱动的先决条件。 4.1~4.2节讲解了Linux内核模块的概念和结构,4.3~4.8节对Linux内核模块的各个组成部分进行了展现,4.1~4.2与4.3~4.8节是整体与部分的关系。 4.9节说明了独立存在的Linux内核模块的Makefile文件编写方法和模块的编译方法。 4.1 Linux内核模块简介Linux内核的整体结构已经非常庞大,而其包含的组件也非常多。我们怎样把需要的部分都包含在内核中呢? 一种方法是把所有需要的功能都编译到Linux内核。这会导致两个问题,一是生成的内核会很大,二是如果我们要在现有的内核中新增或删除功能,将不得不重新编译内核。 有没有一种机制使得编译出的内核本身并不需要包含所有功能,而在这些功能需要被使用的时候,其对应的代码被动态地加载到内核中呢? 答案是肯定的,Linux提供了这样的一种机制,这种机制被称为模块(Module)。模块具有这样的特点: · 模块本身不被编译入内核映像,这控制了内核的大小。 · 模块一旦被加载,它就和内核中的其它部分完全一样。 为了建立读者对模块的初步感性认识,我们先来看一个最简单的内核模块

Linux下显示运行时链接(运行时加载)

那年仲夏 提交于 2019-11-25 19:25:53
目录 介绍 如何加载动态库 dlopen() 第一个参数: 被加载动态库的路径 第二个参数: flag表示函数符号的解析方式 dlopen 返回值 dlsym() 参数: 返回值 符号优先级 dlerror() dlclose() show code 内容学习自《 程序员的自我修养 链接装载与库》 如果只是想知道如何使用如何加载动态库和那4个函数的使用,可以直接从如何加载动态库开始看。 介绍 支持动态链接的系统往往都支持一种更加灵活的模块加载方式,叫做显式运行时链接(Explicit Run-time Linking),有时候也叫做运行时加载。也就是让程序自己在运行时控制加载指定的模块,并且可以在不需要该模块时将其卸载。从前面我们了解到的来看,如果动态链接器可以在运行时将共享模块装载进内存并且可以进行重定位等操作,那么这种运行时加载在理论上也是很容易实现的。而且一般的共享对象不需要进行任何修改就可以进行运行时装载,这种共享对象往往被叫做动态装载库(Dynamic Loading Library),其实本质上它跟一般的共享对象没什么区别,只是程序开发者使用它的角度不同。 这种运行时加载使得程序的模块组织变得很灵活,可以用来实现一些诸如插件、驱动等功能。当程序需要用到某个插件或者驱动的时候,才将相应的模块装载进来,而不需要从一开始就将他们全部装载进来,从而减少了程序启动时间和内存使用