免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: cjj888
打印 上一主题 下一主题

一个c语言中的问题[已解决] [复制链接]

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
11 [报告]
发表于 2011-10-12 23:15 |只看该作者
4(1扩成4),
a393483403 发表于 2011-10-12 22:51



    不是「擴成」,那個叫 padding(不要小瞧這些詞語的使用:使用不準確的語言的後果就是思維混亂,同時也無法和別人有效的交流),而具體要 padding 多少個字節,是和下一個成員的對齊要求有關的,未必就是 3。

论坛徽章:
0
12 [报告]
发表于 2011-10-13 20:14 |只看该作者
回复 11# MMMIX


    谢谢哈

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
13 [报告]
发表于 2011-10-14 15:07 |只看该作者
struct s1
{
   char ch,*ptr;
  union {
            short a,b;
            unsigned int c:2,d:1; ...
cjj888 发表于 2011-10-12 18:34
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>

  4. int main( void )
  5. {
  6.         struct s1
  7.         {
  8.                 char ch,*ptr;
  9.                 union {
  10.                         short a,b;
  11.                         unsigned int c:2,d:1;
  12.                 }
  13.                 struct *next;
  14.         }
  15.         fprintf(stdout,"%d\n",sizeof(struct s1));
  16.         return 0;
  17. }
复制代码
aa.c: 在函数‘main’中:
aa.c:14: 错误:expected ‘{’ before ‘*’ token
aa.c:14: 错误:声明指定了两个以上的数据类型
aa.c:16: 错误:expected ‘)’ before string constant

环境 CentOS6 64-bit , gcc (GCC) 4.4.4 20100726 (Red Hat 4.4.4-13)
Copyright © 2010 Free Software Foundation, Inc.
本程序是自由软件;请参看源代码的版权声明。本软件没有任何担保;
包括没有适销性和某一专用目的下的适用性担保。

论坛徽章:
0
14 [报告]
发表于 2011-10-19 18:01 |只看该作者
谢谢

论坛徽章:
19
CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-09-18 15:15:15CU大牛徽章
日期:2013-05-20 10:46:44CU大牛徽章
日期:2013-05-20 10:46:38CU大牛徽章
日期:2013-05-20 10:46:31CU大牛徽章
日期:2013-05-20 10:46:25CU大牛徽章
日期:2013-05-20 10:46:18CU大牛徽章
日期:2013-04-17 11:19:51CU大牛徽章
日期:2013-04-17 11:19:42CU大牛徽章
日期:2013-04-17 11:19:37CU大牛徽章
日期:2013-04-17 11:19:32CU大牛徽章
日期:2013-04-17 11:19:28
15 [报告]
发表于 2011-10-19 18:46 |只看该作者
struct s1
{
   char ch,*ptr;
  union {
            short a,b;
            unsigned int c:2,d:1; ...
cjj888 发表于 2011-10-12 18:34



    struct s1
{
   char ch,*ptr;    //ch和*ptr各占2bit,共4bit
  union   //按照最长的计算,union占4bit
          {
            short a,b;
            unsigned int c:2,d:1;
            }
   struct *next;  //指向struct的指针,和struct占相同的字节,8bit
}

论坛徽章:
19
CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-09-18 15:15:15CU大牛徽章
日期:2013-05-20 10:46:44CU大牛徽章
日期:2013-05-20 10:46:38CU大牛徽章
日期:2013-05-20 10:46:31CU大牛徽章
日期:2013-05-20 10:46:25CU大牛徽章
日期:2013-05-20 10:46:18CU大牛徽章
日期:2013-04-17 11:19:51CU大牛徽章
日期:2013-04-17 11:19:42CU大牛徽章
日期:2013-04-17 11:19:37CU大牛徽章
日期:2013-04-17 11:19:32CU大牛徽章
日期:2013-04-17 11:19:28
16 [报告]
发表于 2011-10-19 18:55 |只看该作者
aa.c: 在函数‘main’中:
aa.c:14: 错误:expected ‘{’ before ‘*’ token
aa.c:14: 错误:声明指定了 ...
snow888 发表于 2011-10-14 15:07



    同志,你不会就不要给人家乱说
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>

  4.   struct s1
  5.         {
  6.                 char ch,*ptr;
  7.                 union
  8.                 {
  9.                         short a,b;
  10.                         unsigned int c:2,d:1;
  11.                 };
  12.                 struct s1 *next;
  13.         };

  14. int main()
  15. {
  16.       
  17.         printf("%d\n",sizeof(struct s1));
  18.         return 0;
  19. }
复制代码


看到没有
Win7 64bit gcc-MinGW

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
17 [报告]
发表于 2011-10-19 19:05 |只看该作者
同志,你不会就不要给人家乱说

看到没有
Win7 64bit gcc-MinGW
方兆国 发表于 2011-10-19 18:55



    俺是不会啊。

俺的视屏,你看看吧。







同志,你不会不要乱给人家说。

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
18 [报告]
发表于 2011-10-19 19:30 |只看该作者
struct s1
{
   char ch,*ptr;    //ch和*ptr各占2bit,共4bit
  union   //按照最长的计算,un ...
方兆国 发表于 2011-10-19 18:46



    這都是從什麼地方看到的?錯的也太離譜了。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
19 [报告]
发表于 2011-10-19 21:59 |只看该作者
這都是從什麼地方看到的?錯的也太離譜了。
MMMIX 发表于 2011-10-19 19:30



    人家是高手啊,咋会错呢?

错的是俺们。

论坛徽章:
0
20 [报告]
发表于 2011-10-21 10:18 |只看该作者
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

  struct s1
        {
                char ch,*ptr;  ~~~~~~~~~~~~~8
                union~~~~~~~~~~~~~~~~~~8
                {
                        short a,b;
                        unsigned int c:2,d:1;
                };
                struct s1 *next;~~~~~~~~~~~~4
        };

int main()
{
      
        printf("%d\n",sizeof(struct s1));
        return 0;
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP