深入理解C语言小括号用法

2023-05-16

学了这么多年C语言,你真的会用小括号吗?我们今天来总结一下小括号“()”有哪些用法,用法如下表:
在这里插入图片描述
示例

1、聚组
聚组是用来改变运算优先级,实例如下:
例子1: data = (x + y)*5 ;

例子2: int (*pointer)[3] ;

例2中为声明一个指针数组。

2、函数调用
函数调用是用来调用函数,实例如下:
例子1: func(a , b);

例子2: (*func_p)(c , d);

3、类型转换
类型转换是用强制类型转换,实例如下:
例子1: float a = 3.14;

int b = (int)a;

4、复合语句表达式
复合语句表达式是将复合语句通过小括号括起来后,可以当做表达式,通常在GUN C中使用,实例如下
例子1: data = ( {int i,j; i = 2 ; j = i*2 + 1; } );

例1中data 值为5;

例子2:

#define container_of(ptr, type, member) ({ \

const typeof( ((type *)0)->member ) *__mptr = (ptr); \

(type *)( (char *)__mptr - offsetof(type,member) );})

例2中为container_of是linux内核数据结构中经常用到的宏,它可以根据结构体的成员变量获取所在结构体的首地址。

创作不易希望朋友们点赞,转发,关注。希望获取源码的朋友们在评论区里留言。
作者:李巍
Github:liyinuoman2017

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

深入理解C语言小括号用法 的相关文章

  • 深入理解node的web stream模块

    深入理解node的web stream模块 提示 xff1a 需要掌握node传统的流以及事件机制node环境 xff1a v16 5 0 43 一下内容全部以node v18 12 0实验为基础如果观看期间发现了一些不认识的api xff
  • 深入理解Java中的String

    深入理解Java中的String 本篇转载自博客园 xff0c 原作者平凡希 xff0c 特此说明
  • 深入理解C/C++数组和指针

    版权所有 xff0c 转载请注明出处 xff0c 谢谢 xff01 http blog csdn net walkinginthewind article details 7044380 C语言中数组和指针是一种很特别的关系 xff0c 首
  • 深入理解read(byte[] b)与readFully(byte[] b)

    要搞清楚read byte b 和readFully byte b 的区别 xff0c 可以从以下方面着手分析 1 代码的具体实现 2 方法何时返回 3 字节是以什么方式在网络上传输的 1 read byte b 调用read byte b
  • 深入理解Spring的@Order注解和Ordered接口

    前言 Spring的 64 Order注解或者Ordered接口大家都知道是控制顺序的 xff0c 那么它们到底是控制什么顺序的 xff1f 是控制Bean的注入顺序 xff0c 还是Bean的实例化顺序 xff0c 还是Bean的执行顺序
  • PRODUCT_COPY_FILES的深入理解,为何不能在Android.mk使用

    PRODUCT COPY FILES本质是和定义产品的AndroidProducts mk xff08 get all product makefiles来获取系统中所有AndroidProducts mk 文件路径 xff09 联系在一起
  • 【高级】深入理解Word里的字号、行距、段距、间距、样式

    昨天领导交给我一份文档 xff0c 让我帮忙修改一下 改完后最后一页只有单独的一行 xff0c 打印出来不够美观 因此 xff0c 我缩小了行距 xff0c 把默认的单倍行距改为了固定值28磅 结果是 xff0c 整个文档的确少了一页 xf
  • 深入理解Python中的if语句

    公众号 xff1a 尤而小屋 作者 xff1a Peter 编辑 xff1a Peter 大家好 xff0c 我是Peter 在生活中总是会听到这样的话 xff1a 如果我上课认真一点 xff0c 英语肯定可以及格如果我努力锻炼 xff0c
  • 深入理解java虚拟机(JVM)------一篇过

    JVM 一篇过 发展史 xff08 不知道历史的程序员不是一个好秃子 xff09 前身 xff1a Oak语言 xff08 91年开发消费性电子产品 xff09 java me java se java ee java me xff1a 移
  • 深入理解MFC消息循环和消息泵的原理

    首先 xff0c 应该清楚MFC的消息循环 GetMessage PeekMessage xff0c 消息泵 CWinThread PumpMessage 和MFC的消息在窗口之间的路由是两件不同的事情 在MFC的应用程序中 应用程序类基于
  • 【深入理解】export和module.export的区别

    内部原理 exports 61 module exports 61 exports 是module exports的引用 xff0c 怎么理解这句话呢 xff1f 大概就是 var a 61 var b 61 a a 和 b 之间的区别吧
  • Dockerfile 深入理解

    Docker 专栏文章索引 x1f449 Docker 简介 x1f449 Docker 安装图文教程 x1f449 Docker 镜像概念及操作 x1f449 Dockerfile 深入理解 Dockerfile 深入理解 x1f680
  • Spring Boot深入理解+核心特性讲解(超强源码版)需要一定的基础观看噢

    文章目录 开篇spring boot的诞生spring boot核心特性web服务器 WebServer 64 ConditionalOnXXX工厂加载机制配置加载机制spring boot Actuator 开篇 这篇博文主要总结我自己学
  • SVM深入理解&人脸特征提取

    目录 一 SVM深入理解1 SVM算法2 重做例子代码 二 人脸特征提取1 采集人脸信息 绘制68个特征点2 给人脸绘制一幅墨镜 三 总结四 参考文献 一 SVM深入理解 1 SVM算法 支持向量机 xff08 support vector
  • 《Windows核心编程》第3章——深入理解handle

    本文借助windbg来理解程序中的函数如何使用handle对句柄表进行查询的 所以先要开启Win7下Windbg的内和调试功能 解决win7下内核调试的问题 win7下debug默认无法进行内核调试 xff08 xff01 process等
  • 深入理解Arrays.sort()

    翻译人员 铁锚 翻译日期 2013年11月16日 原文链接 Deep Understanding of Arrays sort T Comparator lt super T gt c Arrays sort T Comparator lt
  • 深入理解Java枚举类型(enum)

    版权申明 未经博主同意 xff0c 谢绝转载 xff01 xff08 请尊重原创 xff0c 博主保留追究权 xff09 http blog csdn net javazejian article details 71333103 出自 z
  • 深入理解Golang中的Context包

    context Context是Go语言中独特的设计 xff0c 在其他编程语言中我们很少见到类似的概念 context Context深度支持Golang的高并发 1 Goroutine和Channel 在理解context包之前 xff
  • 深入理解Java虚拟机JVM

    JVM工作原理和特点主要是指操作系统装入JVM是通过jdk中Java exe来完成 通过下面4步来完成JVM环境 1 创建JVM装载环境和配置 2 装载JVM dll 3 初始化JVM dll并挂界到JNIENV JNI调用接口 实例 4
  • 深入理解Kotlin无参构造函数

    Unsafe 创建实例 在java中 创建一个对象 其实主要就是3种方法 通过new 关键字来创建 这种是最常见的 通过反射构造方法来创建对象 这种也不少见 很多框架中都有使用 Unsafe类来创建实例 xff0c 这种情况非常少见 这里先

随机推荐

  • 【网络通信】Wince 和 PC 通过USB 用Socket 进行通信

    网上资料比较少或者说讲的不太详细 xff0c 现在进行总结下 xff0c 刚毕业没接触过WINce xff0c 不过和MFC差不多 xff0c 现在进入正题 刚开始我的疑惑是Wince是如何和PC进行通信的 xff0c 以及能在USB模式下
  • 如何在 Ubuntu 20.04 上添加交换空间

    简介 xff1a 本文主要为大家讲解如何在 Ubuntu 20 04上添加并激活一个交换空间 镜像下载 域名解析 时间同步请点击 阿里巴巴开源镜像站 交换空间是硬盘上的一个空间 xff0c 当物理 RAM 内存被用尽时 xff0c 被紧急征
  • VScode+Sphinx+ReadTheDocs 从环境搭建到放弃

    概述 此篇博客用来记录在windows10中配置环境的过程 xff0c 注意是Windows下 xff0c 我没有在Linux下面尝试过配置 一下参考了各路教程加上自己亲测 xff0c 应该是没有问题的 被掏空 目录 概述 目录材料清单工具
  • 分布式游戏服务器设计

    分布式游戏服务器设计 服务器解释整体设计图网关服务器网络连接消息处理权限管理业务支持消息路由 登录服务器网络连接用户注册用户登录 中心服务器用户管理消息推送全局功能 游戏服务器数据读取数据落地消息处理 存储服务器工作模式数据一致性 依赖系统
  • Ubuntu 更新apt源及apt常用命令

    Ubuntu 更新apt源及常用命令 替换apt国内源更新软件包信息可更新的包信息更新所有包安装编译必备安装软件包查找软件包名查找包含文件的软件包名列出软件包的所有文件删除软件包 替换apt国内源 执行以下命令 span class tok
  • UUID/GUID介绍、生成规则及生成代码

    UUID GUID介绍 生成规则及生成代码 1 UUID介绍1 1 介绍1 2 UUID优势1 3 UUID劣势 2 UUID版本2 1 版本1 基于时间的UUID2 1 1优点2 1 2 缺点2 1 3 生成规则 2 2 版本2 分布式安
  • Linux开启root远程密码ssh登录

    Linux开启root远程密码ssh登录 登录修改root密码登录root修改sshd配置重启sshd服务 登录 先使用pubkey登录到普通用户 修改root密码 然后执行以下命令更新root密码 span class token fun
  • Windows安装go-python环境--使用golang执行python3

    Windows安装go python环境 目的项目路径安装python3 7 9安装包便携版 安装pkg config新增PC文件安装TMD GCC添加环境变量安装go python测试不兼容接口 目的 在go中使用C API调用CPyth
  • Github自动构建及推送DockerHub

    Github自动构建及推送DockerHub DockerHub Automated BuildsGithub 官方免费方法 DockerHub Automated Builds DockerHub需要付费才能自动绑定Github构建 米多
  • VMware Workstation 与 Device/Credential Guard 不兼容

    VMware Workstation 与 Device Credential Guard 不兼容 问题出现问题的原因解决方案第一步 打开 基于虚拟化的安全设置为 已禁用 第二步 win 43 R 打开运行 xff0c 输入services
  • TortoiseGit拉取远端Gerrit公钥不识别问题

    Gerrit与TortoiseGit公钥不识别问题 现象解决办法 现象 远程repo使用Gerrit服务器本地使用TortoiseGit客户端id rsa pub 已经设置到远端服务器git clone正常拉取TortoiseGit客户端拉
  • Windows Docker Desktop开放API端口2375用于远程调用

    Windows Docker Desktop开放API端口2375用于远程调用 问题解决开启IP Helper服务开启Docker配置开放2375端口 端口映射找到需要暴露的IP执行端口映射命令 Windows防火墙关闭防火墙添加防火墙规则
  • Linksys WRT路由器刷入OpenWrt与原厂固件双固件及切换

    Linksys路由器OpenWrt与原厂固件双固件刷入及切换 双固件机制使用原厂固件刷其他固件使用原厂固件切换启动分区使用OpenWrt刷入Sysupgrade使用OpenWrt刷入Img使用OpenWrt切换分区通用的硬切换分区 xff0
  • 如何在 Ubuntu 20.04 上安装 Apache

    简介 xff1a Apache 是世界上最流行的网站服务器之一 它是开源并且跨平台的 HTTP 服务器 xff0c 它托管了互联网上大量的网站 Apache 提供了很多强大的功能 xff0c 并且可以扩展其他的模块 本文主要为大家介绍如何在
  • 浅谈C++中的多线程(一)

    本篇文章围绕以下几个问题展开 xff1a 何为进程 xff1f 何为线程 xff1f 两者有何区别 xff1f 何为并发 xff1f C 43 43 中如何解决并发问题 xff1f C 43 43 中多线程的语言实现 xff1f 同步互斥原
  • 如何用ASCII码表白

    前提摘要 刚好学到了字符流输入输出那块东西 xff0c 从文本文档里敲入老师课件里的东西 xff0c 控制台 输出了对应的数字编码 xff0c 就萌生了 xff1a 嗯 可以用来表白的小想法 xff0c 就是把一对酷酷的扔 过去 xff0c
  • 走进前端 VScode插件安装 Gitee提交

    一 xff0c 认识前端 什么是前端 前端即网站前台部分 xff0c 运行在PC端 xff0c 移动端等浏览器上展现给用户浏览的网页 前端技术一般分为前端设计和前端开发 xff0c 前端设计理解为网站网页的视觉设计 xff0c 前端开发则是
  • freeRTOS与ucos II区别

    freeRTOS比uCOS II优胜的地方 1 内核ROM和耗费RAM都比uCOS 小 xff0c 特别是RAM 这在单片机里面是稀缺资源 xff0c UCOS至少要5K以上 xff0c 而freeOS用2 3K也可以跑的很好 xff1b
  • 嵌入式软件架构设计

    如何设计一个好的软件架构 xff0c 如何提高软件的扩展性 xff0c 移植性 xff0c 复用性和可读性 xff1f 很多做嵌入式开发的朋友经常会遇到这种情况 xff1a 一个项目软件设计完成了 xff0c 客户提出了一些新的功能需求 这
  • 深入理解C语言小括号用法

    学了这么多年C语言 xff0c 你真的会用小括号吗 xff1f 我们今天来总结一下小括号 xff08 xff09 有哪些用法 xff0c 用法如下表 xff1a 示例 1 聚组 聚组是用来改变运算优先级 xff0c 实例如下 xff1a 例