精华内容
下载资源
问答
  • C语言里面100UL是什么意思

    千次阅读 2018-07-03 14:00:48
    就是数字100 ,这些后缀的作用是指明数据类型.因为单独写100程序默认的类型是 int, 加上后缀就变成了unsigned long
    就是 数字100 一百.

    U 表示 unsigned ——无符号.
    L 表示 long—— 长整数.

    后缀大小写都可以, 可以单独使用(100U), 也可以组合使用(100UL)

    除了这两个之外, 还有一个后缀是F, 表示float, 但是F不可以和U组合, 因为浮点数没有unsigned

    这些后缀的作用是指明数据类型.
    因为单独写100程序默认的类型是 int, 加上后缀就变成了unsigned long
    同样的 1.5这样浮点数, 默认类型是double(双精度浮点数), 加上f指明为float(单精度).

    指明类型通常用在函数参数匹配上, 尤其是多个重载的时候.

    比如说两个函数.
    void fun(int);
    void fun(float);

    你这样调用 fun(0.5);
    你可能觉得应该调用后面那个函数, 因为0.5是个浮点数而不是整数.

    但实际上这个调用在语法标准上是有歧义的.
    因为0.5默认是double类型, 而double转换为int和float的优先级是一样!
    所以加上后缀f, 像fun(0.5F), 这样就指明调用第二个函数. 避免导致歧义.
    ----对此表示怀疑,能在一个文件中,定义两个名称一样的函数?

    试了一下,答案是不行的,会报错(软件是MDK-ARM Professional Version:5.11.0.0)

    error:  #247: function "某某某" has already been defined

    展开全文
  • 熟悉编程的通常会用到一些LP开头的数据类型来定义指针,比如以下VSminwindef.h中的部分内容: typedef unsigned long DWORD; typedef int BOOL; typedef unsigned char BYTE; typedef unsigned short WORD; ...

    熟悉编程的通常会用到一些LP开头的数据类型来定义指针,比如以下VS里minwindef.h中的部分内容:

    typedef unsigned long       DWORD;
    typedef int                 BOOL;
    typedef unsigned char       BYTE;
    typedef unsigned short      WORD;
    typedef float               FLOAT;
    typedef FLOAT               *PFLOAT;
    typedef BOOL near           *PBOOL;
    typedef BOOL far            *LPBOOL;
    typedef BYTE near           *PBYTE;
    typedef BYTE far            *LPBYTE;
    typedef int near            *PINT;
    typedef int far             *LPINT;
    typedef WORD near           *PWORD;
    typedef WORD far            *LPWORD;
    typedef long far            *LPLONG;
    typedef DWORD near          *PDWORD;
    typedef DWORD far           *LPDWORD;
    typedef void far            *LPVOID;
    typedef CONST void far      *LPCVOID;
    

    其中有用到near和far,简单来看分别是定义短指针和长(L)指针。可以验证typedef时用near修饰指针长度是far修饰指针长度的一半。由于以前没看见过,就好奇查了查,总结了以下结果:

    near和far是在定义近指针、远指针需要用到的,是16位CPU造就的怪胎;
    现在的32位以上的CPU已经没有这种形式了。

    16位CPU(主要指80386和80486)内部数组总线为16位,地址总线为24位。这就意味着一个字(16bit)存不下一个地址,要用到两个字。习惯把高位字称为段地址,低位字称为偏移地址。
    程序运行时,OS会给程序分配几个内存段供程序使用,主要的有代码段(CS)、数据段(DS)、堆栈段(SS)。根据不同的编译模式这几个段可能重合。

    当指针指向的地址与数据段的段地址相同(即处于数据段内),这时可以不记录段地址而仅记录偏移地址(只需16bit)。这种指针称为近指针(near指针)。

    当指针指向的地址与数据段的段地址不同(即处于数据段外),这里不仅要记录偏移地址还要记录段地址(共需32bit)。这种指针称为远指针(far指针)。

    展开全文
  • 单片机C语言unsigned char code table[] code 是什么作用?    code的作用是告诉单片机,我定义的数据要放在ROM(程序存储区)里面,写入后就不能再更改,其实是相当与汇编里面的寻址MOVX(好像是...

    单片机C语言unsigned char code table[]  code 是什么作用?

     

        code的作用是告诉单片机,我定义的数据要放在ROM(程序存储区)里面,写入后就不能再更改,其实是相当与汇编里面的寻址MOVX(好像是),因为C语言中没办法详细描述存入的是ROM还是RAM(寄存器),所以在软件中添加了这一个语句起到代替汇编指令的作用,对应的还有data是存入RAM的意思。

    程序可以简单的分为code(程序)区,和data (数据)区,code区在运行的时候是不可以更改的,data区放全局变量和临时变量,是要不断的改变的,cpu从code区读取指令,对data区的数据进行运算处理,因此code区存储在什么介质上并不重要,象以前的计算机程序存储在卡片上,code区也可以放在rom里面,也可以放在ram里面,也可以放在flash里面(但是运行速度要慢很多,主要读flash比读ram要费时间),因此一般的做法是要将程序放到flash里面,然后load到 ram里面运行的;DATA区就没有什么选择了,肯定要放在RAM里面,放到rom里面改动不了。

    展开全文
  • 在单片机C语言中const是什么意思

    千次阅读 2017-02-23 11:51:46
    在单片机C语言中const unsigned char ov529[5]={0xff,0xff,0xff,SYNC_ID,0x00}前面加const是什么意思?? 表示常量,不允许修改里面的内容。也就是你如果改变数组里面的值会报错。 const表示内容不被修改...

    在单片机C语言中const unsigned char ov529[5]={0xff,0xff,0xff,SYNC_ID,0x00}前面加const是什么意思??


    表示常量,不允许修改里面的内容。也就是你如果改变数组里面的值会报错。


    const表示内容不被修改,相当于常数。在51C语言中,const声明的一般被编译器存在ROM中

    展开全文
  • 这个语法应该很多人知道,看来还是我基础不好,所以才一时没看懂 同样是在跟内核代码码时发现 #define IS_ERR_VALUE(x) unlikely((x) >= (unsigned long)-MAX_ERRNO)   ...其实不是,真正的意思
  • unsigned char code 是什么

    万次阅读 多人点赞 2015-04-03 20:31:17
    写入后就不能再更改,其实是相当与汇编里面的寻址MOVX(好像是),因为C语言中没办法详细描述存入的是ROM还是RAM(寄存器),所以在软件中添加了这一个语句起到代替汇编指令的作用,对应的还有data是存入RAM的意思。...
  • 单片机C语言unsigned char code table[] code 是什么作用? code的作用是告诉单片机,我定义的数据要放在ROM(程序存储区)里面,写入后就不能再更改,其实是相当与汇编里面的寻址MOVC(好像是),因为C语言中没...
  • uchar就是unsigned char ,意思就是定义一个无符号字符型数据 8位数,,范围是 0-255 占用一个字节。 但是为什么会多出一个code呢?这个code的作用是什么呢? 正解: code的作用就是告诉单片机,定义的数据要放在ROM...
  • typedef unsigned char BYTE

    2020-06-11 18:52:11
    typedef unsigned char BYTE 的意思就是在这个说明以后就可以du在程序中用BYTE 代替unsigned char了,这只是为了编写代码的方便而已! BYTE在这里还是一个类型,并不是一个变量,里面没有存储东西。 你可以 BTYE ar=...
  • 1. unsigned int 32 (C语言标准表达方法) 2. uint32_t ; 3. u32; 这三种方式都是在表达同一个意思,如:_IO int32_t 他等同于vs32,还等同于 volatile int32_t, **volatile signed int 32 这种表达方式才是C语言的...
  • stm32常用数据类型 U8、U16、U32到底...1.unsigned int 32 (C语言标准表达方法) 2.uint32_t ; 3.u32; 这三种方式都是在表达同一个意思。可为什么ST的开发人员要搞的这么乱呢?其实ST 搞这么多花样,无非是想...
  • 1,unsigned int 32 (C语言标准表达方法) 2,uint32_t ; 3 ,u32; 这三种方式都是在表达同一个意思,可为什么ST的开发人员要搞的这么乱呢? 其实ST 搞这么多花样,无非是想开发人员在写代码时定义数据类型能少写几...
  • 1,unsigned int 32 (C语言标准表达方法) 2,uint32_t ; 3 ,u32; 这三种方式都是在表达同一个意思,可为什么ST的开发人员要搞的这么乱呢? 还有其他好多你可能看起来很陌生 ,很不好理解的表达方式, ...
  • 1,unsigned int 32 (C语言标准表达方法) 2,uint32_t ;  3 ,u32;  这三种方式都是在表达同一个意思,可为什么ST的开发人员要搞的这么乱呢? 还有其他好多你可能看起来很陌生 ,很不好理解的表达方式, ...
  • 单片机C语言unsigned char code table[] code 是什么作用? code的作用是告诉单片机,我定义的数据要放在ROM(程序存储区)里面,写入后就不能再更改,其实是相当与汇编里面的寻址MOVC(好像是),因为C语言中没办法...
  • C51中的code关键字

    千次阅读 2014-03-23 15:13:21
    单片机C语言unsigned char code table[] code 是什么作用? code的作用是告诉单片机,我定义的数据要放在ROM(程序存储区)里面,写入后就不能再更改,其实是相当与汇编里面的寻址MOVC(好像是),因为C语言中没办法...
  • 1. 第一个宏:offsetof用于计算 TYPE 结构体中 MEMBER 成员的偏移位置 #ifndef offsetof #define offsetof(TYPE, MEMBER) ((size_t)...size_t类型就是long unsigned int类型,这句代码的意思不就是C语言里面的强制类型
  • SMT32 库 数据类型定义

    2020-08-11 06:52:10
    在Keil MDK 开发环境,比如一个 无符号32位整形数据会有很多种表示方法:1,unsigned int 32 (C语言标准表达方法) 2,uint32_t ; 3 ,u32; 这三种方式都是在表达同一个意思,可为什么ST的开发人员要搞的这么乱呢...
  • 2021-06-12

    2021-06-12 18:24:11
    那么冒号后面的数字是什么意思呢,是字节大小??? 是占几个bit位的意思。。。。。 我们定义一个人这个复杂对象的结构体类型,假如这里面包括一个性别的成员变量,性别的最多有三种类型:男 女 和保密 00 代表男 01...
  •  在Keil MDK 开发环境,比如一个 无符号32位整形数据会有很多种表示方法:1,unsigned int 32 (C语言标准表达方法) 2,uint32_t ; 3 ,u32; 这三种方式都是在表达同一个意思,可为什么ST的开发人员要搞的这么...
  • 它是什么意思? 答:和while(1)相同。 5、do……while和while……do有什么区别? 答:前一个循环一遍再判断,后一个判断以后再循环 6、请写出下列代码的输出内容 #include main() { int a,b,c,d; a=10; b=a++; c=++a...
  • C语言里参数传递都是传值,是一个拷贝,修改指针,只是改变了拷贝的指向,原指针指向并没有改变,而修改指针的内容则是可以的。)如果函数的参数是一个指针,不要指望用该指针去申请动态内存。(即上面所说的修改...

空空如也

空空如也

1 2
收藏数 24
精华内容 9
关键字:

c语言里unsigned什么意思

c语言 订阅