当前位置: 首页 > news >正文

C语言基本知识 2.2void 函数

在C语言中, void 是一个重要的关键字,具有多种用途,以下是详细介绍:
 
函数返回值类型声明
 
- 当函数不需要返回任何值时,可以将函数的返回值类型声明为 void 。例如:

void printMessage()
{
    printf("This is a message.\n");
}
在这个例子中, printMessage 函数只是负责输出一条消息,它不需要返回任何具体的值给调用者,所以其返回值类型被指定为 void 

函数参数列表声明

-  void 也可以用于表示函数没有参数。通常有两种常见的写法来表明函数无参数:

- 一种是在函数定义时使用 (void) 来明确表示参数列表为空,如下:

void doSomething(void)
{
    // 函数体内容,执行一些操作
}
- 另一种是直接省略参数列表括号内的内容,但这种方式在一些较老的代码风格或某些编译器中可能会有不同的解读,所以使用 (void) 的写法更加清晰明确,避免歧义。例如:

void anotherFunction()

{

    // 函数体内容,执行一些操作

}

指针指向类型声明

-  void 可以用于声明指向未知类型数据的指针,即 void * 类型的指针。例如:

void *genericPointer;
void * 类型的指针可以指向任何类型的数据,但在实际使用时,需要先将其转换为具体的、已知类型的指针才能进行有效的操作,比如访问所指向的数据内容等。以下是一个简单示例:

int num = 10;
void *genericPointer = #

// 使用时需要进行类型转换
int *intPointer = (int *)genericPointer;
printf("The value of num is %d\n", *intPointer);
在这个例子中,先将 int 类型变量 num 的地址赋给 void * 类型的指针 genericPointer ,然后在使用时将其转换为 int * 类型的指针 intPointer ,以便能够正确地获取和输出 num 的值。
 
表示空类型或无类型
 
- 在一些语法结构中, void 可以用来表示一种空的、不存在具体类型的情况。比如在结构体或联合体定义中,如果某个成员暂时不需要定义具体类型,可以先使用 void 占位,后续再根据具体情况进行补充完善。但这种用法相对较少见,并且在实际应用中需要谨慎处理,确保后续能够正确地赋予具体类型。
总体而言, void 在C语言中起到了明确函数返回值情况、参数情况以及处理未知类型指针等多种重要作用,合理使用 void 关键字有助于编写更加规范、清晰的C语言程序。

相关文章:

C语言基本知识 2.2void 函数

在C语言中, void 是一个重要的关键字,具有多种用途,以下是详细介绍: 函数返回值类型声明 - 当函数不需要返回任何值时,可以将函数的返回值类型声明为 void 。例如: void printMessage() { printf(…...

Spring 框架中哪些接口可以创建对象

Spring 框架中哪些接口可以创建对象 在 Spring 框架中,向 IOC 容器中添加 Bean 主要有以下几种接口和方式。Spring 提供了不同的手段来实现对象的创建和管理,涵盖了不同的需求和场景。以下是几种常用的接口和方式: 1. BeanFactory 接口 Be…...

豆瓣书摘 | 爬虫 | Python

获取豆瓣书摘,存入MongoDB中。 import logging import timeimport requests from bs4 import BeautifulSoup from pymongo import MongoClientheaders {accept: text/html,application/xhtmlxml,application/xml;q0.9,image/avif,image/webp,image/apng,*/*;q0.8,…...

Oracle数据库物理存储结构管理

​ 大家好,我是程序员小羊! 前言: 安装和配置Oracle数据库是一个涉及多个步骤的任务,通常包括环境准备、软件安装、数据库创建和基本配置等。以下是详细的安装与配置流程。 一、环境准备 1. 系统要求 操作系统:Wind…...

java——Map接口

Java的Map接口是一种键值对的数据结构,用于存储和操作键值对的集合。它是Java集合框架中的一部分,提供了一种以键值对形式组织数据的方法。 Map接口有多个实现类,常用的有HashMap、TreeMap和LinkedHashMap。每种实现类都有不同的特点和适用场…...

量子计算机全面解析:技术、应用与未来

标题:量子计算机全面解析:技术、应用与未来 一、什么是量子计算机? 量子计算机是一种利用量子力学原理(如叠加、纠缠和干涉)进行计算的新型计算设备。与传统计算机基于比特(0 和 1)的运算方式不…...

IDEA相关(包括但不限于快捷键,使用技巧)成长笔记

1.IDEA创建及命名规范 IDEA创建是:项目、模块、包、类 命名规范: 1.项目名全部小写 2.包名全部小写 3.类名首字母大写,一般都是使用驼峰式命名。 如:public class MyFirstClass{} 4.同上: 变量名、方法名首字母小…...

【再谈设计模式】适配器模式 ~接口兼容的桥梁

一、引言 在软件开发的复杂世界里,不同的组件、类或者系统往往有着各自独立的设计和接口定义。当需要将这些原本不兼容的部分整合在一起协同工作时,就像尝试将方形的榫头插入圆形的卯眼一样困难。适配器设计模式就如同一位神奇的工匠,能够巧妙…...

使用Cursor和Claude AI打造你的第一个App

大家好,使用Cursor和Claude AI打造应用程序是一个结合智能代码辅助和人工智能对话的创新过程。Cursor是一个编程辅助工具,它通过智能代码补全、聊天式AI对话和代码生成等功能,帮助开发者提高编程效率。Claude AI则是一个强大的人工智能平台&a…...

粗读Apache Paimon 的基本概念及其组成结构

文章目录 一、Paimon的基本概念(一)快照(二)分区(三)分桶(四)一致性保证 二、Paimon的组成结构(一)文件布局(二)存储结构(…...

c++调用 c# dll 通过 P/Invoke (详细避坑)

项目场景: VS2022 .NET8 , 项目应用的库需要支持AOT,不支持AOT的库看这里 我的c项目很奇怪,如果使用 clr 调用c# dll,会有很多报错,所以使用 P/Invoke方法,这个方法不会有任何奇怪的报错 解决方案 示例…...

李春葆《数据结构》——图相关代码

邻接矩阵结构体&#xff1a; #define MAX<最大结点个数> #define INF 32765 //定义无穷 typedef struct{int no;//顶点的编号&#xff1b;InfoType info;//顶点的其他信息 }vertexType;//顶点的类型 typedef struct{int edges[MAX][Max];//邻接矩阵数组 int vertexTy…...

Linux驱动开发第2步_“物理内存”和“虚拟内存”的映射

“新字符设备的GPIO驱动”和“设备树下的GPIO驱动”都要用到寄存器地址&#xff0c;使用“物理内存”和“虚拟内存”映射时&#xff0c;非常不方便&#xff0c;而pinctrl和gpio子系统的GPIO驱动&#xff0c;非常简化。因此&#xff0c;要重点学习pinctrl和gpio子系统下的GPIO驱…...

告别多品牌乱战,吉利开始觉醒

科技新知 原创作者丨思原 编辑丨蕨影 2007年&#xff0c;是国内自主品牌汽车萌芽的一年&#xff0c;当时行业普遍奉行“多生孩子好打架”战略&#xff0c;吉利也是在这样的背景下发布了《宁波宣言》&#xff0c;奠定了之后十多年的发展主导思想。 然而&#xff0c;新能源的快…...

Target-absent Human Attention

Abstract 预测人类注视行为对于构建能够预测用户注意力的人机交互系统非常重要。已经开发出计算机视觉模型来预测人们在搜索目标物体时的注视点。但当目标不存在于图像中时,又该如何处理呢?同样重要的是要了解当人们找不到目标时,他们如何进行搜索,以及何时停止搜索。在本文…...

<QNAP 453D QTS-5.x> 日志记录:在 Docker 中运行的 Flask 应用安装 自签名 SSL 证书 解决 Chrome 等浏览器证书安全

原因&#xff1a;Chrome 不信任 ssc 证书 使启用了 HTTPS&#xff0c;即使有使用 自签名证书 (self-signed certificate 非由可信的证书颁发机构 【CA&#xff0c;Certificate Authority】签发的&#xff09;。浏览器 Chrome 默认不信任自签名证书&#xff0c;也会报 NET::ERR_…...

通过huggingface-cli下载Hugging Face上的公开数据集或模型至本地

1. 获取 Access Tokens 在使用huggingface-cli命令下载之前需要先去官网获取 Access Tokens&#xff1a; 获取tokens的官网链接&#xff1a;https://huggingface.co/settings/tokens点击新增 token&#xff1a; 然后选择 write 权限&#xff1a; 最后&#xff0c;这个 Access…...

论文阅读——Intrusion detection systems using longshort‑term memory (LSTM)

一.基本信息 论文名称&#xff1a;Intrusion detection systems using longshort‑term memory (LSTM) 中文翻译&#xff1a;基于长短期记忆(LSTM)的入侵检测系统 DOI&#xff1a;10.1186/s40537-021-00448-4 作者&#xff1a;FatimaEzzahra Laghrissi1* , Samira Douzi2*, Kha…...

SparkSQL的执行过程:从源码角度解析逻辑计划、优化计划和物理计划

SparkSQL的执行过程可以分为以下几个阶段&#xff1a;从用户的SQL语句到最终生成的RDD执行&#xff0c;涵盖逻辑计划、优化计划和物理计划。以下是详细的源码角度解析&#xff1a; 1. 解析阶段&#xff08;Parsing&#xff09; SQL语句解析&#xff1a;Spark 使用 Catalyst 引…...

Leetcode打卡:新增道路查询后的最短距离II

执行结果&#xff1a;通过 题目&#xff1a;3244 新增道路查询后的最短距离II 给你一个整数 n 和一个二维整数数组 queries。 有 n 个城市&#xff0c;编号从 0 到 n - 1。初始时&#xff0c;每个城市 i 都有一条单向道路通往城市 i 1&#xff08; 0 < i < n - 1&…...

AI辅助故事创作:从工具链构建到人机协同写作实践

1. 项目概述&#xff1a;当AI成为你的专属故事创作伙伴最近在折腾一个挺有意思的项目&#xff0c;我把它叫做“盐的故事”&#xff08;Salt-Story&#xff09;。这名字听起来有点玄乎&#xff0c;其实内核很简单&#xff1a;一个专门用来辅助故事创作的AI工具链。我自己是个业余…...

终极跨平台桌面待办工具:My-TODOs如何重塑你的任务管理体验

终极跨平台桌面待办工具&#xff1a;My-TODOs如何重塑你的任务管理体验 【免费下载链接】My-TODOs A cross-platform desktop To-Do list. 跨平台桌面待办小工具 项目地址: https://gitcode.com/gh_mirrors/my/My-TODOs 你是否厌倦了复杂的任务管理软件&#xff1f;是否…...

Simulink代码生成实战指南:从模型配置到嵌入式部署

1. Simulink代码生成的核心价值 第一次接触Simulink代码生成功能时&#xff0c;我完全被它的自动化程度震惊了。想象一下&#xff0c;你花了几个月精心设计的控制算法模型&#xff0c;只需要点几下鼠标就能变成可以直接烧录到ECU的C代码&#xff0c;这简直就像魔术一样。不过在…...

掌握Windows风扇控制:FanControl软件从零到精通指南

掌握Windows风扇控制&#xff1a;FanControl软件从零到精通指南 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/fa/F…...

娱乐圈天降紫微星终结乱象,海棠山铁哥终结资源咖霸屏时代

资源咖的丧钟&#xff0c;已鸣。 草根王的号角&#xff0c;已响。一、旧秩序罪状书固化霸权三宗罪现场速写1. 资源垄断霸占赛道、包揽曝光、红利通吃2. 圈层护城出身即顶流&#xff0c;背景即通行证3. 劣币驱逐流水线泛滥&#xff0c;原创被碾压&#xff0c;审美被带偏 “无资源…...

娱乐圈天降紫微星承载使命,海棠山铁哥扛起原创影视复兴大旗

一、乱世先声每一个时代的乱象&#xff0c;都需要一位天命者终结。 每一次行业的沉沦&#xff0c;都需要一束紫微星光破暗。当下影视行业&#xff0c;早已偏离创作初心&#xff0c;走入本末倒置的绝境。 翻拍泛滥成灾IP套皮横行情怀反复透支流水线作品扎堆 资本只求快速变现&am…...

HTTP自适应流媒体技术解析:从HLS/DASH原理到实战部署

1. 流媒体技术演进&#xff1a;从“下载后播放”到“自适应缓冲”每天我们打开手机或电脑&#xff0c;点开一个视频&#xff0c;看到那个旋转的加载圈&#xff0c;心里总会咯噔一下。这个被称为“缓冲”的现象&#xff0c;早已成为数字生活的一部分。但你是否想过&#xff0c;为…...

3个技巧彻底改变你的泰坦之旅装备管理体验

3个技巧彻底改变你的泰坦之旅装备管理体验 【免费下载链接】TQVaultAE Extra bank space for Titan Quest Anniversary Edition 项目地址: https://gitcode.com/gh_mirrors/tq/TQVaultAE 你是否曾在泰坦之旅的冒险中&#xff0c;面对满仓库的传奇装备却找不到需要的那一…...

Sonixd多语言支持详解:国际化(i18n)实现原理和本地化最佳实践

Sonixd多语言支持详解&#xff1a;国际化(i18n)实现原理和本地化最佳实践 【免费下载链接】sonixd A full-featured Subsonic/Jellyfin compatible desktop music player 项目地址: https://gitcode.com/gh_mirrors/so/sonixd Sonixd是一款功能强大的桌面音乐播放器&…...

Keil5 C51与MDK合并安装避坑全记录:从下载、配置到成功破解

Keil5 C51与MDK合并安装实战指南&#xff1a;从零开始到完美运行 作为一名长期从事嵌入式开发的工程师&#xff0c;我深知Keil在单片机开发领域的地位。无论是经典的51单片机还是功能强大的STM32&#xff0c;Keil都能提供专业的开发环境。但官方将C51和MDK版本分开的做法确实给…...