C语言基础(1)-基本语法及注意事项
1. include 头文件包含
#include <stdio.h>这个是hello world程序的第一句话
# 代表预编译指令
#include的意思就是头文件包含,使用C语言库函数需要提前包含库函数对应的头文件。
stdio.h这个文件在操作系统的系统目录下
include有两种写法
#include <文件名>,如果文件在系统目录下,那么需要用<>
#include “文件名”,如果文件在当前目录下,那么用""
2. main函数
main函数又叫主函数,main函数是c语言程序的入口,程序是从main函数开始执行的,一个c语言程序中只能有一个main函数。
c语言可执行程序必须也只能有一个main函数。
3. 注释
//叫行注释,注释的内容编译器是忽略的,注释主要的作用是在代码中加一些说明和解释,这样有利于代码的阅读, 行注释是从c++语言借鉴过来的
/* */ 叫块注释,块注释是c语言标准的注释方法
4. {}括号,程序体和代码块
C语言每句可执行代码都是;结尾
{}叫代码块,一个代码块内部可以有一条或者多条语句
所有的可执行语句必须是在代码块里面
所有的函数都是由
函数名
程序体,{语句}组成的。
5. 声明和定义
int a; //定义一个变量
extern int b; // 声明一个变量
int和extern都是c语言的关键字,a和b是用户可以自己起的名字
6. C语言变量命名规范
可以使用大小写字母,下划线,数字,但第一个字母必须是字母或者下划线,字母区分大小写。
7. printf函数
printf是c语言库函数,功能是向标准输出设备输出一个字符串
printf(“hello world\n”);//\n的意思是回车换行
8. return 语句
return代表函数执行完毕,返回return代表函数的终止.
如果main定义的时候前面是int,那么return后面就需要写一个整数,如果main定义的时候前面是void,那么return后面什么也不需要写
在main函数中return 0代表程序执行成功,return -1代表程序执行失败
在C语言中 int main()和 void main都可以
int main()和void main()在c语言中是一样的,但C++只接受int main这种定义方式。
9. system函数调用
在使用system函数之前需要包含stdlib.h这个头文件,system主要的功能是通过程序执行另外一个程序
system返回值在windows和unix下的不同
如果在命令行执行一个程序,那么这个程序的调用者就是操作系统,如果在代码中通过system执行一个程序,那么这个程序的调用者就是自己写的代码本身.
C语言所有的库函数调用,只能保证语法是一致的,但不能保证执行结果是一致的,同样的库函数在不同的操作系统下执行结果可能是一样的,也可能是不一样的。
POSIX
POSIX是一个标准,只要符合这个标准的函数,在不同的系统下执行的结果就可以一致。
Unix和linux很多库函数都是支持POSIX的,但windows支持的比较差。
如果将unix代码移植到linux一般代价很小,如果把windows’代码移植到unixl或者linux就比较麻烦。
10. C语言编译过程,GCC参数简介
C语言编译过程
1.预编译->2.编译->3.链接
-E 预编译
Gcc –E参数代表预编译
gcc -o a11.c -E a1.c
预编译a1.c,预编译之后的文件名叫a11.c
预编译功能之一:将#include包含的头文件做简单的文本替换
在C语言中#开头的语句又叫预编译指令
预编译功能之二:将代码中的注释删除
-c编译
编译的作用是把文本的c语言编译为二进制的指令
gcc -c a11.c
编译a11.c,编译后的文件名叫a.o
链接
C语言写的程序是需要依赖各种库的,所以编译之后还需要把库链接到最终的可执行程序中去
Gcc没有单独的链接参数
gcc -o a.o
链接a.o,最后生成的文件叫a
11. 操作系统
64位和32位操作系统区别
CPU内存结构和寄存器
寄存器是CPU内部最基本的存储单元
CPU对外是通过总线来和外部设备交互的,总线的宽度是8位,同时CPU的寄存器也是8位,那么这个CPU就叫8位CPU
如果总线是32位,寄存器也是32位的,那么这个CPU就是32位CPU
有一种CPU内部的寄存器是32位的,但总线是16位,准32位CPU
所有的64位CPU兼容32位的指令,32位要兼容16位的指令,所以在64位的CPU上是可以识别32位的指令
在64位的CPU构架上运行了64位的软件操作系统,那么这个系统是64位
在64位的CPU构架上,运行了32位的软件操作系统,那么这个系统就是32位
64位的软件不不能运行在32位的CPU之上的。
32位的系统最大支持4G的内存,64位则可以大于这个限制
RISC与CISC CPU架构
RISC精简指令集
CISC复杂指令集
SPARC,X86与ARM
SPARC,ARM都属于精简指令集
X86典型复杂指令
12. 常用IDE快捷键
QT常用快捷键
Ctrl + I, 自动格式化代码
Ctrl + /, 注释/取消注释
Alt + enter, 自动完成类函数定义
F9, 设置断点
F5,调试运行
Ctrl + r,不调试运行
Ctrl + b,编译,不运行
F10, next调试
F11, step调试
VS常用快捷键
Ctrl + k,Ctrl + f, 自动格式化代码
Ctrl +k, Ctrl + c, 注释代码
Ctrl + k,Ctrl + u, 取消注释代码
F9, 设置断点
F5,调试运行
Ctrl + F5,不调试运行
Ctrl + Shift + b,编译,不运行
F10, next调试
F11, step调试
C语言基础(1)-基本语法及注意事项的更多相关文章
- GO语言基础(结构+语法+类型+变量)
GO语言基础(结构+语法+类型+变量) Go语言结构 Go语言语法 Go语言类型 Go语言变量 Go 语言结构 Go 语言的基础组成有以下几个部分: 包声明 引入包 函数 变量 语句 &a ...
- day03<Java语言基础+>
Java语言基础(逻辑运算符的基本用法) Java语言基础(逻辑运算符&&和&的区别) Java语言基础(位运算符的基本用法1) Java语言基础(位异或运算符的特点及面试题) ...
- 03 java语言基础逻辑运算符
03.01_Java语言基础(逻辑运算符的基本用法) A:逻辑运算符有哪些 &,|,^,! &&,|| B:案例演示 逻辑运算符的基本用法 注意事项: a:逻辑运算符一般用于连 ...
- C语言基础语法
#include <stdio.h> int main() { int age; printf("input your age"); scanf("%d&qu ...
- Smali语言基础语法
1.Smali语言基础语法-数据类型与描述符 smali中有两类数据类型:基本类型和引用类型.引用类型是指数组和对象,其它都是基础类型. 基本类型以及每种类型的描述符: Java类型 类型描述符 说明 ...
- Python语言基础-语法特点、保留字与标识符、变量、基本数据类型、运算符、基本输入输出、Python2.X与Python3.X区别
Python语言基础 1.Python语法特点 注释: 单行注释:# #注释单行注释分为两种情况,例:第一种#用于计算bim数值bim=weight/(height*height)第二种:bim=we ...
- Go语言基础一:环境配置与基础语法
配置开发环境 开始使用Go,首先需要一个完善的开发环境. 下载并安装Go 安装包的下载地址为:https://golang.org/dl/ go语言中文社区下载:https://studygolang ...
- NDK以及C语言基础语法(一)
一.什么是NDK? Native Development Kit (本地开发工具包): NDK中提供了一系列的工具,帮助我们快速开发C/C++的动态库,并能自动将so文件和java文件一起打包成apk ...
- 《MSSQL2008技术内幕:T-SQL语言基础》读书笔记(下)
索引: 一.SQL Server的体系结构 二.查询 三.表表达式 四.集合运算 五.透视.逆透视及分组 六.数据修改 七.事务和并发 八.可编程对象 五.透视.逆透视及分组 5.1 透视 所谓透视( ...
随机推荐
- [Django]登陆界面以及用户登入登出权限
前言:简单的登陆界面展现,以及用户登陆登出,最后用户权限的问题 正文: 首先需要在settings.py设置ROOT_URLCONF,默认值为: ROOT_URLCONF = 'www.urls'# ...
- MMORPG大型游戏设计与开发(服务器 AI 基础接口)
一个模块都往往需要统一的接口支持,特别是对于非常大型的模块,基础结构的统一性非常重要,它往往决定了其扩展对象的通用性.昨天说了AI的基本概述以及组成,作为与场景模块中核心一样重要的地位,基础部分的设计 ...
- JS入门学习,编写一个简易月历
//今天最头疼的地方在于 getElementsByClassName()的 [] ~~ //错了N遍后只能说有点点头绪,如果不加[] 查找的就是全部吧 加上[]能精确控制的标签或者class < ...
- 生产环境使用 pt-table-checksum 检查MySQL数据一致性
公司数据中心从托管机房迁移到阿里云,需要对mysql迁移(Replication)后的数据一致性进行校验,但又不能对生产环境使用造成影响,pt-table-checksum 成为了绝佳也是唯一的检查工 ...
- 操作系统Unix、Windows、Mac OS、Linux的故事
电脑,计算机已经成为我们生活中必不可少的一部分.无论是大型的超级计算机,还是手机般小巧的终端设备,都跑着一个操作系统.正是这些操作系统,让那些硬件和芯片得意组合起来,让那些软件得以运行,让我们的世界在 ...
- Mac--10.8.3下使用apache2方法
在终端使用 sudo apachectl start => 启动apache2 sudo apchectl stop => 停止 sudo apchectl restart => ...
- Prototype原型(创建型模式)
依赖关系的倒置:抽象不应该依赖于实现的细节,实现细节应该依赖于抽象. 原型模式的定义 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象.prototype模式允许一个对象再创建另外一个可 ...
- 微信支付开发(1) JS API支付
关键字:微信支付 微信支付v3 jsapi支付 统一支付 Native支付 prepay_id 作者:方倍工作室原文: http://www.cnblogs.com/txw1958/p/wxpayv3 ...
- 利用Highcharts插件制作动态图表
向大家推荐一款js插件,用于绘制图表Highcharts,具体操作可参考官方网站:http://www.hcharts.cn/ 1.如下为本人制作的图形效果如下,当然其效果远不止这些,大家还可以深入研 ...
- 那些年构建SSH所遇到的坑
SSH框架有非常多的优点,在这里我不再赘述,我们经常会去构建这种框架的项目,但是在构建SSH时候经常会遇到一些问题,例如常见的网页上的所报的错误404,500等,404错误一般比较好排查,没有找到该页 ...