函数体中定义的结构体和类型

源代码:

 1 #include <stdio.h>
 2 struct smonth                           // point 1
 3 {
 4         int a;
 5         int b;
 6 };
 7 
 8 int func1()
 9 {
10         struct smonth{
11                 int a;
12                 int b;
13         };
14 
15 typedef int LOVE;                       // point 2
16 
17         LOVE a = 5;
18         struct smonth s;
19         s.a = 6;
20         s.b = 7;
21         printf("func 1 : %d %d\n",s.a,s.b);
22         return 0;
23 }
24 
25 int func2()
26 {
27         struct smonth{
28                 int c;
29                 int d;
30                 int f;
31         };
32 
33 //      LOVE a = 5;                     // point 3
34         struct smonth s;
35         s.c = 8;
36         s.d = 9;
37         s.f = 10;
38         printf("func 2 : %d %d %d\n",s.c,s.d,s.f);
39         return 0;
40 }
41 
42 int func3()
43 {
44         struct smonth s;
45         s.a = 11;
46         s.b = 12;
47         printf("func 3 : %d %d\n",s.a,s.b);
48         return 0;
49 }
50 
51 int main()
52 {
53         func1();
54         func2();
55         func3();
56         return 0;
57 }

输出结果:

zhangxu@Ivy-debian-64:~$ ./a.out
func 1 : 6 7
func 2 : 8 9 10
func 3 : 11 12

如果把point 1处的定义注释掉:

zhangxu@Ivy-debian-64:~$ gcc test_struct.c
test_struct.c: In function ‘func3’:
test_struct.c:44:16: error: storage size of ‘s’ isn’t known

如果把point 3处的注释去掉:

zhangxu@Ivy-debian-64:~$ gcc test_struct.c
test_struct.c: In function ‘func2’:
test_struct.c:33:2: error: unknown type name ‘LOVE’

由上面的实验,容易发现,在函数体中定义的结构体和使用typedef 定义的变量类型的作用域都是此函数本身。

 

 

转载于:https://www.cnblogs.com/godjesse/p/3328764.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/575762.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java listview用法_Java ListView.setMultiChoiceModeListener方法代码示例

import android.widget.ListView; //导入方法依赖的package包/类Overridepublic void onActivityCreated(Nullable Bundle savedInstanceState) {super.onActivityCreated(savedInstanceState);lAdapter new LabelAdapter(getActivity(), null, 0);setListAdapter(lAdapter);g…

预编译指令与宏定义

#if #elif [defined(), !defined()] #else #ifdef #ifndef #endif // 条件编译 /* 头文件防止多次被包含 */ #ifndef ZLIB_H #define ZLIB_H#endif /* ZLIB_H *//* 用C方式来修饰函数与变量 */ #ifdef __cplusplus extern "C" { #endif int add(int a, …

java mock server_java – 使用MockRestServiceServer模拟REST调用

我正在尝试编写一个JUnit测试用例,用于测试辅助类中的方法.该方法使用REST调用外部应用程序,这是我试图在JUnit测试中模拟的调用.辅助方法使用Spring的RestTemplate进行REST调用.在我的测试中,我创建了一个模拟REST服务器并模拟REST模板并将它们实例化为&#xff1a;Beforepubl…

BZOJ 2597 剪刀石头布(最小费用最大流)(WC2007)

Description 在一些一对一游戏的比赛&#xff08;如下棋、乒乓球和羽毛球的单打&#xff09;中&#xff0c;我们经常会遇到A胜过B&#xff0c;B胜过C而C又胜过A的有趣情况&#xff0c;不妨形象的称之为剪刀石头布情况。有的时候&#xff0c;无聊的人们会津津乐道于统计有多少这…

java swt最小化到托盘_SWT 中实现最小化到托盘图标,并只能通过托盘的弹出菜单关闭程序...

package com.unmi;import org.eclipse.swt.*;import org.eclipse.swt.events.*;import org.eclipse.swt.graphics.*;import org.eclipse.swt.widgets.*;/*** SWT 3.0 开始引入了 Tray&#xff0c;可以在系统栏放置你的程序图标了* 本程序实现的功能有四&#xff1a;* 1. 点击窗…

HDU 1476 Sudoku Killer

Sudoku Killer Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 3367 Accepted Submission(s): 1063 Problem Description自从2006年3月10日至11日的首届数独世界锦标赛以后&#xff0c;数独这项游戏越来越受到…

java .net 互通redis_C# servicestack.redis 互通 java jedis

本文是基于jedis的一致性环哈希来修改的&#xff0c;.net选的是servicestack.redis组件来修改无奈两个组件都有各自的一致性环哈希算法&#xff0c;不兼容&#xff0c;那就选一个作为标准&#xff0c;修改另一个咯。本文选择jedis的一致性环哈希作为标准&#xff0c;进而修改.n…

java 多重压缩下载_Java 多文件边压缩边下载

有时我们希望在后台实时生成文件并下载到客户端GetMapping(value "download")public void download(HttpServletResponse response) {try(OutputStream outputStream response.getOutputStream();ZipOutputStream zipOutputStream new ZipOutputStream(outputStre…

wdatepicker使用指南

wdatepicker使用指南 http://blog.csdn.net/zengxin2008/article/details/7248964#t63posted on 2013-09-22 15:45 moonfans 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/moonfans/p/3333251.html

纵表、横表互转的SQL

纵表、横表互转的SQL By&#xff1a;大志若愚 1、建表&#xff1a; 纵表结构 Table_A create table Table_A (姓名 varchar(20),课程 varchar(20),成绩 int ) insert into Table_A(姓名,课程,成绩) values(张三,语文,60) insert into Table_A(姓名,课程,成绩) values(张三,数学…

java按照商品价格排序_按照指定的类型排序

比如有三本书&#xff0c;书名和价格分别如下&#xff1a;《猎物》18.4元、《大明王朝》59.0元、《快乐密码》25.0元。前几天的一篇文章中讲到按照中文拼音进行排序&#xff0c;这里如果想按照价格排序的话怎么办&#xff1f;其实这里就牵涉到在Java中怎样对对象进行排序处理&a…

6款帮助 滚动视差jquery插件

在网页设计中&#xff0c;视差滚动&#xff08;Parallax Scrolling&#xff09;是当下流行的网页设计技术&#xff0c;通过让多层背景以不同的速度或者不同的方向移动来形成非常有趣的 3D 运动效果。下面是一些运用视差滚动效果的优秀网页案例&#xff1a; 视差&#xff08;Pa…

java i线程安全吗_Java中 i++ 是线程安全的么?为什么?

问题在 int i 0; i i; 语句中&#xff0c;i i是线程安全的么&#xff1f;如果不安全&#xff0c;请说明上面操作在JVM中的执行过程&#xff0c;为什么不安全&#xff1f;说出JDK中哪个类能达到以上的效果&#xff0c;并且是线程安全而且高效的&#xff0c;简述其原理。回答语…

EBS 多组织访问设置

如果想让你的职责下为单组织模式&#xff0c;那么你在Profile下只设置MO: Operating Unit的值&#xff0c;MO: Operating Unit提供只访问一个单独的OU。如果你想让你的职责下为多组织模式&#xff0c;你需要设置MO: Security Profile&#xff0c;MO: Security Profile提供多组织…

java第k小元素_java – 如何从对象列表中提取K“最小”元素?

我会对清单进行排序.然后,我将创建一个包含这10个最小对象的列表,并更改原始列表list1以包含其余对象.就像是&#xff1a;Collection.sort(list1);ArrayList yourSmallestElements (ArrayList)(list1.sublist(0, 9).clone());list1.removeAll(yourSmallestElements);注意&…

JQuery学习系列总结—菜单制作

1、页面中的菜单项可以通过嵌套的ul和li来表示 2、菜单最外层为ul&#xff0c;一层每个主菜单放在一个li中&#xff0c;如果有子菜单&#xff0c;在这个主菜单的li中建立新的ul&#xff0c;再依次嵌套即可构建多层的菜单 3、浏览器中ul和li元素默认情况下文字前都有圆点标识符&…

mysql 大量列 动态变量_aardio动态mysql变量设置

aardio动态mysql变量设置aardio动态mysql变量设置废话不多说&#xff0c;直接开始干活&#xff01;从上午度娘到现在&#xff01;终于有点结果&#xff01;需求是从数据库读取数据&#xff0c;根据条件(变量)直接上代码&#xff0c;如有任何问题&#xff0c;欢迎老铁指正&#…

制作简单的java应用程序_使用exe4j工具制作简单的java应用程序

首先需要下载exe4j工具并进行安装&#xff0c;下面是利用exe4j工具制作应用程序的步骤。1.首先将工程导出为可运行的jar包&#xff0c;选择extract required libralies into generated java&#xff0c;会将引用到的jar包也打到里面。右键java工程--export--java--runnable jar…

HDU 4422 The Little Girl who Picks Mushrooms(简单题)

题目链接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid4422 题目大意&#xff1a;小姑娘背着5个包去山上采蘑菇&#xff0c;每座山上只能用一个背包采集。三个小精灵会要她3个背包&#xff0c;其里面蘑菇的数量必须是1024的倍数&#xff0c;否则5个背包都会被拿走。…

Java三维文字特效设计_jQuery实现3D文字特效的方法

本文实例讲述了jQuery实现3D文字特效的方法。分享给大家供大家参考。具体如下&#xff1a;这款基于jQuery的3D文字特效演示&#xff0c;不是真正的3D&#xff0c;是由多个文字形成的3D效果&#xff0c;如果首次加载网页出错的话&#xff0c;请刷新一下页面&#xff0c;当然在使…