C 基础 - 预处理命令和基本语法详解

news2025/1/13 10:18:24
#include <stdio.h> //预处理指令

int main()   //函数
{
	printf("Hello, World!"); //输出语句
	return 0; //返回语句 
}

目录

一.预处理指令

1.#define  #ifdef  #ifndef  #if #else  #elif #endif

2.#inlcude

a.新增一个文件

b.#include

c.运行结果

d.扩展

e.<> 和 "" 的区别

二.基本语法

一定要注意,编程时请选择正确的输入法,严格区分中英文;

1.语句由分号结束

2.部分语句例子(这里面代表的含义,后面会有详解)

3.注释

4.标识符

5.关键字


一.预处理指令

指令描述
#define定义宏
#include包含一个源代码文件
#undef取消已定义的宏
#ifdef如果宏已经定义,则返回真
#ifndef如果宏没有定义,则返回真
#if如果给定条件为真,则编译下面代码
#else#if 的替代方案
#elif如果前面的 #if 给定条件不为真,当前条件为真,则编译下面代码
#endif结束一个 #if……#else 条件编译块
#error当遇到标准错误时,输出错误消息
#pragma使用标准化方法,向编译器发布特殊的命令到编译器中

例子

1.#define  #ifdef  #ifndef  #if #else  #elif #endif

运行结果,而且在vs里面可以看的,条件没达成,不允许的语句变灰了.

代码

#include <stdio.h> //预处理指令
#define PI 3   //定义宏

int main()   //函数
{
	printf("PI = %d \n",PI); //输出为  PI=3

#ifdef  PI   //如果宏PI以定义则条件为真
	printf("true \n"); //输出为 true
#endif //  PI

#ifndef  PI   //如果宏PI没定义则条件为真
	printf("false \n"); //输出为 false
#endif //  PI

#if PI == 1     
	printf("PI == 1 \n ");
#elif PI == 2 
	printf("PI == 2 \n ");
#else
	printf("PI == 3  \n");
#endif
	return 0; //返回语句 
}

2.#inlcude

当预处理器发现#include 指令时,会查看后面的文件名并把文件的内容包含到当前文件中.

例子

a.新增一个文件

b.#include

c.运行结果

d.扩展

#include "DefinePI.cpp" 就是把 DefinePI.cpp里的内容 复制到这里.替换掉 #include "DefinePI.cpp"

e.<> 和 "" 的区别

尖括号告诉预处理器在系统类库目录中查找该文件。

按住Ctrl,鼠标左键点击 stdio.h,即可跳转.后续的函数,变量定义也可用此方式跳转

双引号是从当前路径开始查找,

比如:

在同一个文件夹下,就可以直接  #include "DefinePI.cpp"

不在同一个文件夹内,就要添加路径 我们新建一个文件夹,

添加上路径.

二.基本语法

一定要注意,编程时请选择正确的输入法,严格区分中英文;

1.语句由分号结束

printf("Hello, World! \n");
return 0;

2.部分语句例子(这里面代表的含义,后面会有详解)

	int a;

	int a1 = 1;

	bool b = true;
	char c = 1.0f;

3.注释

注释是给人看的,编译器遇到的时候会直接跳过.

#include <stdio.h>
int main()   
{
	//这是单行注释

	/*
	这是多
	行注释	
	*/

	return 0; 
}

4.标识符

就是上面距离代码中 , int a1 = 1; a1就是标识符,用来方便区分,和后面的使用.

还可以用来标识(一下只做了解)

  • 函数名 ( 比如前面使用到的 int main()   main 就是函数名)
  • 结构体
  • 指针
  • 数组
  • 自定义的项目名称等等

规则是

允许:

一个标识符以字母 A-Z 或 a-z 或下划线 _ 开始,后跟零个或多个字母、下划线和数字(0-9)

如: name , School_Name


不允许:

出现标点字符


对大小写敏感,区分大小写, 

如: School_Name ,school_name ,school_Name 是三个不同的标识符

5.关键字

是C语言保留的一些有特殊作用词语,不可以用来做标识符;

详解

关键字描述
auto声明自动变量
double声明双精度变量或函数
typedef用以给数据类型取别名
register声明寄存器变量
short声明短整型变量或函数
char声明字符型变量或函数
const声明只读变量
static声明静态变量int声明整型变量或函数
struct声明结构体变量或函数
unsigned声明无符号类型变量或函数
volatile说明变量在程序执行中可被隐含地改变long声明长整型变量或函数
union声明共用数据类型
signed声明有符号类型变量或函数
void声明函数无返回值或无参数,声明无类型指针float声明浮点型变量或函数
enum声明枚举类型
extern声明变量是在其他文件正声明
if条件语句
else条件语句否定分支(与 if 连用)
switch用于开关语句
case开关语句分支
for一种循环语句do循环语句的循环体
while循环语句的循环条件
goto无条件跳转语句
continue结束当前循环,开始下一轮循环break跳出当前循环
default开关语句中的"其他"分支
sizeof计算数据类型长度
return子程序返回语句(可以带参数,也可不带参数)循环条件

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

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

相关文章

AI炒股-批量爬取网易财经的要闻板块

工作任务和目标&#xff1a;批量爬取网易财经的要闻板块 在class"tab_body current"的div标签中&#xff1b; 标题和链接在&#xff1a;<a href"https://www.163.com/dy/article/J2UIO5DD051188EA.html">华为急需找到“松弛感”</a> 第一步&…

【原创教程】MES服务器与成品打标机控制说明

1 实现的功能及应用的场合 MES即制造执行系统(manufacturing execution system,简称MES),即在加强MRP计划的执行功能,把MRP计划同车间作业现场控制,通过执行系统联系起来。 MES是一个生产管理智能化的一个系统,是用于生产时记录数据、产量等信息的智能管理系统。 该项…

WebGL画粗线

目录 前言 基本思路 求左右端点 实现 组织数据 顶点着色器计算端点坐标 效果 前言 WebGL绘制模式有点、线、面三种&#xff1b;通过点的绘制可以实现粒子系统等&#xff0c;通过线可以绘制一些连线关系&#xff1b;面就强大了&#xff0c;通过面&#xff0c;我们可以…

材质技术在AI去衣中的作用

随着人工智能技术的飞速发展&#xff0c;越来越多的应用场景开始涌现。其中&#xff0c;AI去衣技术作为一种新兴的图像处理技术&#xff0c;已经在很多领域得到了广泛的应用。而在AI去衣技术中&#xff0c;材质技术起到了至关重要的作用。本文将详细介绍材质技术在AI去衣中的作…

【前缀和 记忆化搜索】LeetCode1444. 切披萨的方案数

本文涉及的基础知识点 C算法&#xff1a;前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 动态规划 记忆化搜索 LeetCode1444. 切披萨的方案数 给你一个 rows x cols 大小的矩形披萨和一个整数 k &#xff0c;矩形包含两种字符&#xff1a; ‘A’ &#xff…

生成式AI,在云端的绽放与盛开

编辑&#xff1a;阿冒 设计&#xff1a;沐由 毫无疑问&#xff0c;生成式AI已然成为当今技术发展和应用创新的重要引擎之一。 过去的一年多时间里&#xff0c;我们每个人都在目睹和见证着生成式AI是如何以移山倒海的力量&#xff0c;为诸多行业带来革命性乃至颠覆性的变革&…

Python3位运算符

前言 本文介绍的是位运算符&#xff0c;位运算可以理解成对二进制数字上的每一个位进行操作的运算&#xff0c;位运算分为 布尔位运算符 和 移位位运算符。 文章目录 前言一、位运算概览1、布尔位运算符1&#xff09;按位与运算符 ( & )2&#xff09;按位或运算符 ( | )3…

输入输出安全防护指南

输入输出安全防护指南 在现代网络应用程序中&#xff0c;输入输出的安全性是至关重要的。未经验证的输入和未编码的输出可能导致严重的安全漏洞&#xff0c;如SQL注入、跨站脚本攻击&#xff08;XSS&#xff09;等。本文将详细讨论如何通过输入验证和输出编码来确保应用程序的…

9. C++通过epoll+fork的方式实现高性能网络服务器

epollfork 实现高性能网络服务器 一般在服务器上&#xff0c;CPU是多核的&#xff0c;上述epoll实现方式只使用了其中的一个核&#xff0c;造成了资源的大量浪费。因此我们可以将epoll和fork结合来实现更高性能的网络服务器。 创建子进程函数–fork( ) 要了解线程我们先来了解…

零配件相关销售业务

测试场景CRM订单类型描述SAP订单类型描述发货开票备注零部件销售&退货服务商零配件订单标准订单&#xff08;服务商零配件&#xff09;参考DN开票YY 服务商零配件退货单退货订单(服务商零配件&#xff09;不开票退返账号金额YN服务商收到的零配件&#xff08;不能使用&…

Charles-ios无法抓包原因之一证书

VPN证书安装完成后依然无法抓包存在无网络问题 VPN安装证书后直接抓包这时候抓包接口返回无网络&#xff0c;原因是IOS通用-关于本机-证书信任设计未开启信任

最佳实践:REST API 的 HTTP 请求参数

HTTP 请求中的请求参数解释 当客户端发起 HTTP 请求 时&#xff0c;它们可以在 URL 末尾添加请求参数&#xff08;也叫查询参数或 URL 参数&#xff09;来传递数据。这些参数以键值对的形式出现在 URL 中&#xff0c;方便浏览和操作。 请求参数示例 以下是一些带有请求参数的…

c基础 - 输入输出

目录 一.scanf() 和 printf() 函数 1.printf 2.scanf 二 . getchar() & putchar() 函数 1.int getchar(void) 2.int putchar(int c) 三. gets() & puts() 函数 一.scanf() 和 printf() 函数 #include <stdio.h> 需要引入头文件,stdio.h 1.printf print…

【Linux】权限的概念

1.Linux权限的概念 Linux下有两种用户&#xff1a;超级用户&#xff08;root&#xff09;、普通用户。 超级用户&#xff1a;可以再linux系统下做任何事情&#xff0c;不受权限限制 普通用户&#xff1a;在linux下做有限的事情&#xff0c;受权限设置。 windows下也有超级用户…

ADC数模转换器

一、ADC&#xff08;Analog-Digital Converter&#xff09;模拟-数字转换器 1、ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量&#xff0c;建立模拟电路到数字电路的桥梁 2、12位逐次逼近型ADC&#xff0c;1us转换时间 3、输入电压范围&#xff1a;0~3.3V&a…

掌握 JavaScript 基本输出方法

掌握 JavaScript 基本输出方法 前言 这是我在这个网站整理的笔记,有错误的地方请指出&#xff0c;关注我&#xff0c;接下来还会持续更新。 作者&#xff1a;神的孩子都在歌唱 JavaScript 是一种强大且灵活的编程语言&#xff0c;广泛用于 Web 开发。通过 JavaScript&#xff…

2.2 Docker安装redis

2.2 Docker安装redis 1.安装redis docker run --restartalways -p 6379:6379 --name myredis -d redis:7.0.12 --requirepass Hgh675667%–restartalways 开机自启动 -p 6379:6379 端口映射 –name myredis 容器名称 -d redis:7.0.12 redis版本 –requirepass Hgh675667% 密…

异常处理1--5.31

try--catch--finally格式&#xff1a; try{ }catch(错误类型){ }finally{ } 执行情况&#xff1a; package javatest5;public class test {public static void main(String[] args) {int num115;int num20;try{System.out.println("商等于&#xff1a;"num1/num…

JVM学习-类加载过程(二)

Initialization初始化阶段 为类的静态变量赋予正确的初始值 具体描述 类的初始化是类装载的最后一个阶段&#xff0c;如果前面的步骤没有问题&#xff0c;那么表示类可以顺利装载到系统中&#xff0c;此时&#xff0c;类才会开始执行Java字节码(即&#xff0c;到了初始化阶段…

龙芯3A4000+FPGA云终端解决方案,搭载昆仑国产化固件,支持UOS、银河麒麟等国产操作系统

龙芯云终端基于国产化龙芯高性能四核3A4000处理器平台的国产自主可控解决方案&#xff0c;搭载昆仑国产化固件,支持UOS、银河麒麟等国产操作系统&#xff0c;满足国产化信息安全运算的需求&#xff0c;实现从硬件、操作系统到应用的完全国产、自主、可控&#xff0c;是国产信息…