在学习C基础总结了笔记,并分享出来。有问题请及时联系博主:Alliswell_WP,转载请注明出处。
01-C基础第03天(Helloworld)
目录:
1.编写hello world
2.System系统函数
3.在QT平台下创建图形化界面
4.在VS平台下创建图形化界面:(MFC)
5.gcc编译过程
6.汇编语言
7.QT快捷键
8.VS常用快捷键
9.VS2013 C4096的错误
C语言仅有32个关键字,9种控制语句,34种运算符
1.编写hello world:
进入Ubuntu,打开终端——>进入相应文件夹——>mkdir day03——>cd day03——>vi helloworld.c:(输入下面代码)——>Shift+zz退出vi——>gcc -o helloworld hello world.c——>./hello world(出现:hello world)
1 //导入标准输入输出库 2 #include stdio.h//包含头文件 std标准库io input output 输入输出库:<>系统库 ""自定义头文件 3 //这是一行注释 4 /* 5 6 块注释 7 8 */ 9 //主函数,一个函数有且只有一个主函数 10 //函数的返回值类型:int整型 11 //函数的参数类型:void空类型 12 //int main(int argc, char *argc[]) 13 //{}程序体 代码体 函数体 14 int main(void) 15 { 16 //打印函数 ""引起来的称为字符串常量 17 //转义字符\n 换行 18 //;代表一条语句的结束 多个分号代表多个空语句 19 printf("hello world\n"); 20 //函数的返回值;如果在主函数中遇到return代表程序结束 21 return 0; 22 }
通过gcc编译C代码:
格式:gcc [-option1] ... <filename>
命令、选项和源文件之间使用空格分隔
一行命令中可以有零个、一个或多个选项
文件名可以包含文件的绝对路径,也可以使用相对路径
如果命令中不包含输出可执行文件的文件名,可执行文件的文件名会自动生成一个默认名,Linux平台为a.out,Windows平台为a.exe
选项 | 含义 |
-o file | 指定生成的输出文件名为file |
-E | 只进行预处理 |
-S(大写) | 只进行预处理和编译 |
-c(小写) | 只进行预处理、编译和汇编 |
2.System系统函数:
使用system函数可以调用其他程序;
需要使用系统库:<stdlib.h>
可以用在Linux平台和Windows平台,到那时调用的命令行不同
如:
1 #include <stdlib.h> 2 int system(const char *command); 3 功能:在已经运行的程序中执行另外一个外部程序 4 参数:外部可执行程序名字 5 返回值: 6 成功:不同系统返回值不一样 7 失败:通常是 - 1 8 9 示例代码: 10 #include <stdio.h> 11 #include <stdlib.h> 12 13 int main() 14 { 15 //system("calc"); //windows平台 16 system("ls"); //Linux平台, 需要头文件#include <stdlib.h> 17 18 return 0; 19 }
注意:此处的命令已总结至博客:C基础学习笔记——第01天CMD命令 ——https://www.cnblogs.com/Alliswell-WP/p/C_BasicLearning_01_CMD.html
3.在QT平台下创建图形化界面:
1)安装QT并设置环境变量;
2)调试Windows运行下gcc命令是否安装成功;
3)打开QT开发环境,选择文件新建项目;
4)在打开对话框中选择QT图形化界面;
5)在新建好的项目中拖拽空间push button按钮;
6)双击按钮,更改按钮名称;
7)右击按钮,选择:转到槽...,打开对话框;
8)导入系统库stdlib.h输入:system(“calc”);
9)导入系统库windows.h输入WinExec(“calc”, SW_HIDE);系统调用时默认隐藏黑窗口。
注意:QT平台下创建项目不能含有中文路径!
4.在VS平台下创建图形化界面:(MFC)
1)打开项目选择:MFC应用程序;
2)在弹出对话框选择:基于对话框;
3)选择视图界面中的工具箱,找到工具箱;
4)在工具箱中找到Button按钮,在点击按钮后选择状态栏中的外观设置名称;
5)双击按钮进入代码编辑界面;
6)导入系统库windows.h输入WinExec(“calc”, SW_HIDE);系统调用时默认隐藏黑窗口。
5.gcc编译过程
C程序编译步骤
C代码编译成可执行程序经过4步:
1)预处理:宏定义展开、头文件展开、条件编译等,同时将代码中的注释删除,这里并不会检查语法
2)编译:检查语法,将预处理后文件编译生成汇编文件
3)汇编:将汇编文件生成目标文件(二进制文件)
4)链接:C语言写的程序是需要依赖各种库的,所以编译之后还需要把库链接到最终的可执行程序中去
分步编译:
预处理:gcc -E hello.c -o hello.i
编 译:gcc -S hello.i -o hello.s
汇 编:gcc -c hello.s -o hello.o
链 接:gcc hello.o -o hello_elf
一步编译:
gcc hello.c -o demo(还是经过:预处理、编译、汇编、链接的过程)
可执行程序的编译过程:
可执行程序的执行过程:
C语言编译过程:
1)预处理
(1)宏定义展开;
(2)头文件展开;
(3)删除注释;
(4)条件编译;
格式:gcc -E a.c -o a.i
2)编译:
(1)检查语法;
(2)转化成汇编语言;
格式:gcc -S a.i -o a.s
3)汇编
(1)将汇编语言转化成机器语言;
格式:gcc -c a.s -o a.o
4)链接
(1)将库文件链接变成可执行文件;
格式:gcc a.o -o a.exe
6.汇编语言
1)新建项目,创建文件;
2)写C语言源代码,添加断点,调试执行;
3)程序会停止在断点处,在调试菜单栏选择窗口,在列表中选择反汇编,查看汇编源代码;
4)//汇编代码:
__asm
{
mov a, 3
mov b, 4
mov eax, a
add eax, b
mov c, eax
}
7.QT快捷键:
注意:代码提示设置:工具——>选项——>环境——>选中“标签”:搜索“TextEditor”中CompleteThis设置为Ctrl+Right
快捷键 | 含义 |
Ctrl + i | 自动格式化代码 |
Ctrl + / | 注释/取消注释 |
Alt + Enter | 自动完成类函数定义 |
F4 | .h 文件和对应.cpp 文件切换 |
F9 | 设置断点 |
F5 | 调试运行 |
Ctrl + r | 编译,但不调试运行 |
Ctrl + b | 编译,不运行 |
F10 | next调试 |
F11 | step调试 |
8.VS常用快捷键
快捷键 | 含义 |
Ctrl + k,Ctrl + f | 自动格式化代码 |
Ctrl + k,Ctrl + c | 注释代码 |
Ctrl + k,Ctrl + u | 取消注释代码 |
F9 | 设置断点 |
F5 | 调试运行 |
Ctrl + F5 | 不调试运行 |
Ctrl + Shift + b | 编译,不运行 |
F10 | next调试 |
F11 | step调试 |
注意:VS快捷键已总结至博客:VS2015快捷键大全 ——https://www.cnblogs.com/Alliswell-WP/p/VS2015_ShortcutKeys.html
9.VS2013 C4096的错误:
原因:由于微软在VS2013中不建议再使用C的传统库函数scanf,strcpy,sprintf等,所以直接使用这些库函数会提示C4996错误。
分析:VS建议采用带_s的函数,如scanf_s、strcpy_s,但这些并不是标准C函数。
解决:要想继续使用此函数,
法一:需要在源文件中添加以下指令就可以避免这个错误提示:
#define _CRT_SECURE_NO_WARNINGS //这个宏定义最好要放到.c文件的第一行
法二:需要在源文件中添加以下指令:
#pragma warning(disable:4996) //或者使用这个
法三:在VS中选择项目“day03”——>右键“属性”——>“配置属性”点开,“C/C++”点开,选择“预处理器”——>在“预处理器定义”后边点击下拉菜单,选择“编辑”——>在最后一行按“Enter”键,添加新行:_CRT_SECURE_NO_WARNINGS——>“确定”——>“确定”
在学习C基础总结了笔记,并分享出来。有问题请及时联系博主:Alliswell_WP,转载请注明出处。