URN Logo
UNIX Resources » Linux » China Linux Forum » Linux内核技术 » 第19页 » 请教两个C语言语法问题
announcement 声明: 本页内容为中国Linux论坛的内容镜像,文章的版权以及其他所有的相关权利属于中国Linux论坛和相应文章的作者,如果转载,请注明文章来源及相关版权信息。
Resources
China Linux Forum(finished)
Linux Forum(finished)
FreeBSD China(finished)
linuxforum.com
  LinuxForum General Chat
  Linux Advocacy
  LinuxForum Polls
  Introductions
  Linux Kernel Support
  Patch Management
  Development Release
  Linux Programming
  Linux Security
  Linux Software
  Linux Hardware Problems
    Linux Video Problems
    Linux Sound Problems
  Linux Networking Support
  Linux Printing Support
  Linux Human Interface Devices Support
  Linux Data Storage Support
  Linux Applications Support
  Linux Installation Support
  Linux Laptops Support
  Linux Motherboard, Chipsets, CPU, Memory
  Miscellaneous
  Debian Linux Support
  Ubuntu Linux Support
  LiveCD Discussions
  Gentoo Linux Support
  Mandrake Linux Support
  Redhat / Fedora Linux Support
  Slackware Linux Support
  SuSE Linux Support
  CentOS Linux Support
  Linux Web Servers
  Linux DNS Servers
  Linux Database Servers
  Linux Email Servers
  Linux FTP Servers
  Linux Squid Proxy Server
  Linux Samba Help
  Linux cPanel Help
  Linux Ensim Help
  Linux Plesk Help
  Linux Webmin / Usermin Help
  Qmail Toaster Help
  Linux Games
  Windows Game Emulation
  Linux Discussions
  General Linux Discussions
  Red Hat Linux Discussions
  More Red Hat Linux Discussions
  Mandrake Linux Discussions
  Slackware Linux Discussions
  SuSE Linux Discussions
  Debian Discussions
  Samba Help
  Linux Security
  Linux Networking
  Gentoo Help
  Operating System Rant Forum
  Hardware Rants
   
请教两个C语言语法问题
请教两个C语言语法问题 - yuanbor [2007-11-12 14:04 | 314 byte(s)]
 
Re: 请教两个C语言语法问题 - yist111 [2007-11-13 09:13 | 94 byte(s)]
 
Re: 请教两个C语言语法问题 - KernelNewbie [2007-11-12 20:44 | 93 byte(s)]
 
Re: 请教两个C语言语法问题 - yjx_super [2007-11-12 17:59 | 64 byte(s)]
 
Re: 请教两个C语言语法问题 - rockos [2007-11-12 18:10 | 66 byte(s)]
 
Re: 请教两个C语言语法问题 - scutanjun [2007-11-12 15:39 | 965 byte(s)]
 
Re: 请教两个C语言语法问题 - colorant [2007-11-13 08:49 | 89 byte(s)]
 
Re: 请教两个C语言语法问题 - jesuszhu [2007-11-12 14:14 | 86 byte(s)]
 
Subject: 请教两个C语言语法问题
Author: yuanbor    Posted: 2007-11-12 14:04    Length: 314 byte(s)
[Original] [Print] [Top]
问题一、
在struct task_struct结构的定义里有这么一句话:
unsigned did_exec:1;

问题二、
在struct iso_directory_record结构的定义里面有这么一句话:
char name[0];

请问这两种定义表示什么意思哪?能给出讲解这些知识的文章最好了。
谢谢大家。
[Original] [Print] [Top]
Subject: Re: 请教两个C语言语法问题
Author: jesuszhu    Posted: 2007-11-12 14:14    Length: 86 byte(s)
[Original] [Print] [Top]
第一个长度只有一个bit

第二个连一个bit也不占,就起个标识位置的作用。
----
愿我来世,得菩提时,身如琉璃,内外明澈,净无瑕秽。
[Original] [Print] [Top]
Subject: Re: 请教两个C语言语法问题
Author: scutanjun    Posted: 2007-11-12 15:39    Length: 965 byte(s)
[Original] [Print] [Top]
第一个问题概念上叫位段, 你在网上搜吧, 很多的. 我是在<C和指针>一书中接触到的.
第二个问题是零长度数组的问题.
GNU C允许声明零长度的数组来表示一个变长的结构体,
但是只有当这个零长度的数组是结构体的最后一个元素时才有意义. 比如下面的程序:

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct zero
{
int size;
char str[0];
};

int main()
{
char *buf = "hello";

struct zero* msg = (struct zero*)malloc(sizeof(struct zero) + strlen(buf) +
1);
msg->size = strlen(buf);

strcpy(msg->str, buf);
printf("msg->str=%s ", msg->str);
return 0;
}
[Original] [Print] [Top]
Subject: Re: 请教两个C语言语法问题
Author: yjx_super    Posted: 2007-11-12 17:59    Length: 64 byte(s)
[Original] [Print] [Top]
第二个是GNU扩充,还有很多非常有用的扩充呢,可以看gcc的在线文档。
----
Out of your Window!
[Original] [Print] [Top]
Subject: Re: 请教两个C语言语法问题
Author: rockos    Posted: 2007-11-12 18:10    Length: 66 byte(s)
[Original] [Print] [Top]
0长度数组和可变长数组是C99标准, 不是GNU C扩展.

----
不喜欢GPL, BSD的免费许可不错.
[Original] [Print] [Top]
Subject: Re: 请教两个C语言语法问题
Author: KernelNewbie    Posted: 2007-11-12 20:44    Length: 93 byte(s)
[Original] [Print] [Top]
第二问题,精华区中有贴讲GNU C扩展的文章有提到,可以看看。

偶刚看的,嘿嘿。
----
用一生来做程序
[Original] [Print] [Top]
Subject: Re: 请教两个C语言语法问题
Author: colorant    Posted: 2007-11-13 08:49    Length: 89 byte(s)
[Original] [Print] [Top]
有意思,零长度数组最近看C语言核心技术的时候居然没看到。或者这只是变长数组的一种特殊用法?
----
[Original] [Print] [Top]
Subject: Re: 请教两个C语言语法问题
Author: yist111    Posted: 2007-11-13 09:13    Length: 94 byte(s)
[Original] [Print] [Top]
info gcc -> C Extensions -> Zero Length
gcc 文档是把它放在扩展里面的。
[Original] [Print] [Top]
« Previous thread
哪位用EMACS的大侠把支持内核编程风格的配置共享一下?
Linux内核技术
19
Next thread »
多核处理器上,怎样将软中断,内核线程绑定在指定的core上?
     

Copyright © 2018 UNIX Resources Network, All Rights Reserved.    About URN | Privacy & Legal | Help | Contact us