当前位置:首页 » 编程语言 » c语言怎么用gdb
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言怎么用gdb

发布时间: 2022-10-20 02:23:08

c语言 gdb 指针 内存

一般常量在代码段,看地址没问题,str2和str3被优化后指向同一个字符串常量,灭毛病
p &("world")这里的world就不是程序里的那个字符串而是gdb里面的一个变量了,怎么可能还和str2在一起呢?

② 怎么用debug c语言

简单来说,有两种方式,一种是源码debug,即分析源码来找出bug位置,一般使用printf()打印出程序执行每一步的信息,一种是可执行文件debug,需要使用调试器来进行。

1、源码debug

类似于下面的源码,主要通过程序执行时输出的信息,来定位bug出现的位置,然后再修改源码。


#include<stdio.h>

voidf(){;}

intmain()
{
#ifdef_DEBUG
printf("startmainfunction! ");
#endif
voidf();
#ifdef_DEBUG
printf("leavemainfunction! ");
#endif
return0;
}

2、可执行文件调试,windows平台常用的就是vs/vc自带的调试,另外一个就是微软自家开发的调试器windbg。Linux平台以gdb为常用。

IDE自带的调试器以VC6.0为例,编写完代码后,按快截键盘F11,即可进入调试,此时右键,选择“go to disassembly"即可查看到程序的反汇编代码 。一般这种情况,主要是为了对C语言进行反汇编学习。

③ 怎么用gdb和bochs调试内核

gdbstub可以使得Bochs程序在本地1234网络端口侦听接收gdb的命令,并且向gdb发送命令执行结果。从而我们可以利用gdb对Linux 0.11内核进行C语言级的调试。当然,Linux 0.11内核也需要进行使用-g选项重新编译。

14.13.1 编译带gdbstub的Bochs系统{.j,
Bochs用户手册中介绍了自行编译Bochs系统的方法。这里我们给出编译带gdbstub的Bochs系统的方法和步骤。首先从下面网站下载最新Bochs系统源代码(例如:bochs-2.2.tar.gz):U
使用tar对软件包解压后会在当前目录中生成一个bochs-2.2子目录。进入该子目录后带选项“--enable-gdb-stub”运行配置程序configure,然后运行make和make install即可,见如下所示:
[root@plinux bochs-2.2]# ./configure --enable-gdb-stubI0B%
checking build system type... i686-pc-linux-gnu7.tY.
checking host system type... i686-pc-linux-gnuQ
checking target system type... i686-pc-linux-gnu{
...©OldLinux论坛 -- 有关早期Linux内核代码发展的论坛。M
[root@plinux bochs-2.2]# makeQ
[root@plinux bochs-2.2]# make installN?
©OldLinux论坛 -- 有关早期Linux内核代码发展的论坛。ufVz
若在运行./configure时我们碰到一些问题而不能生成编译使用的Makefile文件,那么这通常是由于没有安装X window开发环境软件或相关库文件造成的。此时我们就必须先安装这些必要的软件。>1z<z

14.13.2 编译带调试信息的Linux 0.11内核"jmg
通过把Bochs的模拟运行环境与gdb符号调试工具联系起来,我们既可以使用Linux 0.11系统下编译的带调试信息的内核模块来调试,也可以使用在RedHat 9环境下编译的0.11内核模块来调试。这两种环境下都需要对0.11内核源代码目录中所有Makefile文件进行修改,即在其中编译标志行上添加-g标志,并去掉链接标志行上的-s选项:2

LDFLAGS = -M -x // 去掉 -s 标志。XJFU)Y
CFLAGS =-Wall -O -g -fomit-frame-pointer / // 添加 -g 标志。iMN

进入内核源代码目录后,利用find命令我们可以找到以下所有需要修改的Makefile文件:_6

[root@plinux linux-0.11]# find ./ -name MakefileSn^
./fs/Makefile-
./kernel/Makefile/"`p%
./kernel/chr_drv/Makefile(pyM
./kernel/math/MakefileV
./kernel/blk_drv/Makefiles/CDu
./lib/Makefile[x~
./Makefile980
./mm/Makefile/zb
[root@plinux linux-0.11]#S9/Q

另外,由于此时编译出的内核代码模块中含有调试信息,因此system模块大小可能会超过写入内核代码映像文件的默认最大值SYSSIZE = 0x3000(定义在boot/bootsect.s文件第6行)。我们可以按以下方法修改源代码根目录中的Makefile文件中产生Image文件的规则,即把内核代码模块system中的符号信息去掉后再写入Image文件中,而原始带符号信息的system模块保留用作gdb调试器使用。注意,目标的实现命令需要以一个制表符(TAB)作为一行的开始。pP

Image: boot/bootsect boot/setup tools/system tools/build)=1
cp -f tools/system system.tmp=-&a
strip system.tmphQ6n0S
tools/build boot/bootsect boot/setup system.tmp $(ROOT_DEV) $(SWAP_DEV) > ImageA-)
rm -f system.tmpY3w[/@
sync9=P2n
©OldLinux论坛 -- 有关早期Linux内核代码发展的论坛。KuEo
当然,我们也可以把boot/bootsect.s和tools/build.c中的SYSSIZE值修改成0x8000来处理这种情况。a?g4

14.13.3 调试方法和步骤;M]3!
下面我们根据在现代Linux系统(例如RedHat 9)系统上和运行在Bochs中Linux 0.11系统上编译出的内核代码分别来说明调试方法和步骤。
1 调试现代Linux系统上编译出的Linux 0.11内核?E
假设我们的Linux 0.11内核源代码根目录是linux-rh9-gdb/,则我们首先在该目录中按照上面方法修改所有Makefile文件,然后在linux-rh9-gdb/目录下创建一个bochs运行配置文件并下载一个配套使用的根文件系统映像文件。我们可以直接从网站下载已经设置好的如下软件包来做实验:
使用命令“tar zxvf linux-gdb-rh9-050619.tar.gz”解开这个软件包后,可以看到其中包含以下几个文件和目录:MX{-
©OldLinux论坛 -- 有关早期Linux内核代码发展的论坛。X
[root@plinux linux-gdb-rh9]# ll'*5tfq
total 1600bJT~Q
-rw-r--r-- 1 root root 18055 Jun 18 15:07 bochsrc-fd1-gdb.bxrcf%J2s
drwxr-xr-x 10 root root 4096 Jun 18 22:55 linux[dM&
-rw-r--r-- 1 root root 1474560 Jun 18 20:21 rootimage-0.11-for-orig8EIChk
-rwxr-xr-x 1 root root 35 Jun 18 16:54 run{gj
[root@plinux linux--gdb-rh9]#t|f

这里的bochs配置文件与其他Linux 0.11配置文件的主要区别是在文件头部添加有以下一行内容,表示当bochs使用这个配置文件运行时将在本地网络端口1234上侦听gdb调试器的命令:NhL

gdbstub: enabled=1, port=1234, text_base=0, data_base=0, bss_base=0J,i/6

运行这个实验的基本步骤如下:@EkQ

(1).启动X window系统后打开两个终端窗口;(mPN
(2).在一个窗口中,把工作目录切换进linux-gdb-rh9/目录中,并运行程序“./run”,此时该窗口中会显示一条等待gdb来连接的信息:“Wait for gdb connection on localhost:1234”,并且系统会创建一个Bochs主窗口(此时无内容);1P=VI<
(3).在另一个窗口中,我们把工作目录切换到内核源代码目录中linux-gdb-rh9/linux/,并运行命令:“gdb tools/system”;iDqm8
(4).在运行gdb的窗口中键入命令“break main”和“target remote localhost:1234”,此时gdb会显示已经连接到Bochs的信息;p
(5).在gdb环境中再执行命令“cont”,稍过一会gdb会显示程序停止在init/main.c的main()函数处。v3L2

下面是运行gdb和在其中执行的一些命令示例。[2;jS

[root@plinux linux]# gdb tools/system hI/
GNU gdb Red Hat Linux (5.3post-0.20021129.18rh)!mC}
Copyright 2003 Free Software Foundation, Inc.|3
GDB is free software, covered by the GNU General Public License, and you areC$NY4
welcome to change it and/or distribute copies of it under certain conditions.boNdAL
Type "show ing" to see the conditions.3[nfHW
There is absolutely no warranty for GDB. Type "show warranty" for details.'1-V
This GDB was configured as "i386-redhat-linux-gnu"...Oq&*[
(gdb) break main }<;
Breakpoint 1 at 0x6621: file init/main.c, line 110.+%!.]{
(gdb) target remote localhost:12342 .yc
Remote debugging using localhost:1234X6X&7
0x0000fff0 in sys_mkdir (pathname=0x0, mode=0) at namei.c:481(
481 namei.c: No such file or directory.5QU
in namei.c&%P'
(gdb) cont Pv'/S$
Continuing.P:O_{
Breakpoint 1, main () at init/main.c:110 *
110 ROOT_DEV = ORIG_ROOT_DEV;T7PkpD
(gdb) list 5XT
105 { /* The startup routine assumes (well, ...) this */2L$
106 /*_c
107 * Interrupts are still disabled. Do necessary setups, then)Z0k
108 * enable themjZ@+wn
109 */u
110 ROOT_DEV = ORIG_ROOT_DEV;d&!*`
111 drive_info = DRIVE_INFO;#yRW,
112 memory_end = (1<<20) + (EXT_MEM_K<<10);9Uaw
113 memory_end &= 0xfffff000;`v8fAR
114 if (memory_end > 16*1024*1024)lA#
(gdb) next DH.zM
111 drive_info = DRIVE_INFO;X
(gdb) next ?+S:q
112 memory_end = (1<<20) + (EXT_MEM_K<<10);iXdDt
(gdb) print /x ROOT_DEV <W<
$3 = 0x21d }{%Q
(gdb) quit |
The program is running. Exit anyway? (y or n) yt
[root@plinux linux]#lixBs
=====================================================
14.1 利用bochs调试内核%UU
Bochs具有非常强大的操作系统内核调试功能。这也是本文选择Bochs作为首选实验环境的主要原因之一。有关Bochs调试功能的说明参见前面14.2节,这里基于Linux 0.11内核来说明Windows环境下Bochs系统调试操作的基本方法。m[2

14.1.1 运行Bochs调试程序.g8O
我们假设Bochs系统已被安装在目录“C:/Program Files/Bochs-2.1.1/”中,并且Linux 0.11系统的Bochs配置文件名称是bochsrc-hd.bxrc。现在在包含内核Image文件的目录下建立一个简单的批处理文件run.bat,其内容如下:R

"C:/Program Files/Bochs-2.1.1/bochsdbg" -q -f bochsrc-hd.bxrcjFypV+

其中bochsdbg是Bochs系统的调试执行程序。运行该批处理命令即可进入调试环境。此时Bochs的主显示窗口空白,而控制窗口将显示以下类似内容:D8v~

C:/Documents and Settings/john1/桌面/Linux-0.11>"C:/Program Files/Bochs-2.1.1/boRW6RNY
chsdbg" -q -f bochsrc-hd.bxrc2
========================================================================`)2?os
Bochs x86 Emulator 2.1.13$O@R
February 08, 2004x2
========================================================================/26c3(
00000000000i[ ] reading configuration from bochsrc-hd.bxrcq4
00000000000i[ ] installing win32 mole as the Bochs GUI4UW
00000000000i[ ] Warning: no rc file specified.1dsv
00000000000i[ ] using log file bochsout.txtmM
Next at t=0*
(0) context not implemented because BX_HAVE_HASH_MAP=0c
[0x000ffff0] f000:fff0 (unk. ctxt): jmp f000:e05b ; ea5be000f0g$
<bochs:1>i/

此时Bochs调试系统已经准备好开始运行,CPU执行指针已指向ROM BIOS中地址0x000fffff0处的指令处。其中'<bochs:1>'是命令输入提示符,其中的数字表示当前的命令序列号。在命令提示符'<bochs:1>'后面键入'help'命令,可以列出调试系统的基本命令。若要了解某个命令的具体使用方法,可以键入'help'命令并且后面跟随一个用单引号括住的具体命令,例如:“help 'vbreak'”,如下面所示。V7

<bochs:1> help@n{L(
help - show list of debugger commands5&6^
help 'command'- show short command description~B
-*- Debugger control -*-e!/;l
help, q|quit|exit, set, instrument, show, trace-on, trace-off,u7J
record, playback, load-symbols, slistr2:
-*- Execution control -*-pOHjE
c|cont, s|step|stepi, p|n|next, modebpj
-*- Breakpoint management -*-|EQ
v|vbreak, lb|lbreak, pb|pbreak|b|break, sb, sba, blist,dL/rBI
bpe, bpd, d|del|deleteyR%|
-*- CPU and memory contents -*-xsMy
x, xp, u|disas|disassemble, r|reg|registers, setpmem, crc, info, mp_cpu,@|'p
set_cpu, ptime, print-stack, watch, unwatch, ?|calc7
<bochs:2> help 'vbreak'_t*<#o
help vbreak/?
vbreak seg:off - set a virtual address instruction breakpoint0
<bochs:3>flx+

为了让Bochs直接模拟执行到Linux的引导启动程序开始处,我们可以先使用断点命令在0x7c00处设置一个断点,然后让系统连续运行到0x7c00处停下来。执行的命令序列如下:.Xfk

<bochs:3> vbreak 0x0000:0x7c00hDzuWy
<bochs:4> cfMH/'X
(0) Breakpoint 1, 0x7c00 (0x0:0x7c00))W&
Next at t=4409138<-0m5
(0) [0x00007c00] 0000:7c00 (unk. ctxt): mov ax, 0x7c0 ; b8c007b 03*
<bochs:5>3R28Q

此时,CPU执行到boot.s程序开始处的第1条指令处,Bochs主窗口将显示出“Boot From floppy...”等一些信息。现在,我们可以利用单步执行命令's'或'n'(不跟踪进入子程序)来跟踪调试程序了。在调试时可以使用Bochs的断点设置命令、反汇编命令、信息显示命令等来辅助我们的调试操作。下面是一些常用命令的示例:J'P

<bochs:8> u /10 # 反汇编从当前地址开始的10条指令。,S/2
00007c00: ( ): mov ax, 0x7c0 ; b8c007Wvl
00007c03: ( ): mov ds, ax ; 8ed8)1f*
00007c05: ( ): mov ax, 0x9000 ; b80090WmD1
00007c08: ( ): mov es, ax ; 8ec0(`|
00007c0a: ( ): mov cx, 0x100 ; b90001iW1|1
00007c0d: ( ): sub si, si ; 29f6ze_QZY
00007c0f: ( ): sub di, di ; 29ffZStl
00007c11: ( ): rep movs word ptr [di], word ptr [si] ; f3a5=yF
00007c13: ( ): jmp 9000:0018 ; ea18000090!s?PR9
00007c18: ( ): mov ax, cs ; 8cc8(
<bochs:9> info r # 查看当前CPU寄存器的内容aM>/D
eax 0xaa55 436057a@`_
ecx 0x110001 1114113/$3$K"
edx 0x0 00j3G?
ebx 0x0 0gE
esp 0xfffe 0xfffee7{
ebp 0x0 0x0]*lX
esi 0x0 0m
edi 0xffe4 65508TD}Zo
eip 0x7c00 0x7c00e
eflags 0x282 642Wlg
cs 0x0 0b s=]
ss 0x0 0=Z'
ds 0x0 02R;%
es 0x0 0!
fs 0x0 0BX/
gs 0x0 0D*)}n{

④ Linux下调试编写并调试C语言程序,怎么查看它的内存和CPU信息GDB中可以实现吗

内存和cpu是硬件的概念,在程序中只有被映射后的内存和线程/进程的概念,具体如何调度程序的内存地址和线程/进程的挂起和运行都是操作系统来做的。使用gdb能够查看当前程序各个变量的内存数据内容此时的内存地址对程序员来说是没什么用的(除非是做硬件开发,可能会需要),gdb还能够查看当前程序中那些线程被挂起或正在运行,但查询不到当前线程在哪个cpu上运行。

⑤ c语言怎么运行

1、创建一个文件名为main.c,然后用任意一个款你熟悉的文本编辑软件,比如说记事本,在里面输入下面的代码,记住,要用文本文件编辑软件,不能用word的。

c语言特点:

C语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。

C语言传递参数均是以值传递(pass by value),另外也可以传递指针(a pointer passed by value)。

不同的变量类型可以用结构体(struct)组合在一起。

只有32个保留字(reserved keywords),使变量、函数命名有更多弹性。

部份的变量类型可以转换,例如整型和字符型变量。

通过指针(pointer),C语言可以容易的对存储器进行低级控制。

预编译处理(preprocessor)让C语言的编译更具有弹性。

⑥ 大家初学c语言用的编辑器和编译器是怎么下载安装详细步骤

刚开始学推荐使用小熊猫dev C++,配置较少,安装简单。

⑦ linux中的c语言怎么用gdb调试

编译的时候加-g 跑的时候gdb ./可执行文件就行了 至于各种命令专门有手册可查

⑧ c语言使用什么软件,该如何使用

C语言作为一门古老的编程语言,应用范围非常广,至于编程的软件的话,其实就非常多了,下面我简单介绍几个不错的C语言编程软件,感兴趣的朋友可以自己尝试一下:

Dev-C++

这个是Windows环境下一个轻量级、免费的C/C++集成开发环境,自带有TDM-GCC编译器、GDB调试器,可以直接编译运行C语言程序,轻快灵活,功能简洁,支持代码高显亮,没有自动语法提示和自动补全功能,对于初学者来说,非常锻炼人,纯手工编写代码,更能打好基础:

VC++6.0

这个软件的功能和Dev C++差不多,也是Windows环境下一个非常不错的C/C++开发环境,在早期的学习中,经常会用到这个软件,许多学校机房中都使用这个软件教学,可以直接编辑运行C语言程序,功能比较简单,没有任何提示功能,都是手写代码,现在来说,使用不多了,但对于初学者来说,也是一个不错的选择:

CodeBlocks

相比较前面2个软件,CodeBlocks的功能强大一些,开源、免费、跨平台,小巧灵活,支持代码高亮、语法检查、自动补全等功能,除此之外,还提供了许多现成的工程模板,可以快速创建控制台应用、Qt应用等,使用起来非常方便,也是一个非常不错的C语言编程软件:

VS Code

这是微软开源、免费、跨平台的一个代码编辑器,插件众多,生态环境良好,配置GCC编译器后,也可以直接编辑运行C语言程序(本身支持的编程语言也非常多),支持智能补全、语法提示、Git等功能,轻便灵活,使用起来非常不错,也很好学习和掌握:

VS 2017

这是一个专业的C/C++开发环境,也是个人和公司使用最多的IDE,项目管理、团队协作来说非常方便,集成的环境比较多,Python、VB、C#等,这个软件都能很好的兼容,自动补全、语法检查和提示功能这个软件都支持,整个软件比较大,运行起来电脑可能会比较卡,而且功能比较复杂,初学者来说,需要一段时间才能适应和基本掌握,但的确是一个值得学习和使用的IDE环境:

Vim

这也是一个非常经典的C语言编程环境,只不过在Linux环境下比较常用,免费、跨平台,插件扩展比较丰富,轻巧灵活,功能简洁,安装GCC编译器后,也可以直接编译运行C语言程序,对于在Linux环境下开发C来说,是一个非常不错的选择:

目前,就分享这6个不错的C语言编程软件吧,有Windows的,也有Linux的,对于初学者来说,完全可以满足日常开发和使用,当然,你也可以使用其他软件,像IDEA、Eclipse(安装插件)等,也可以,适合自己就行,网上也有相关资料可供参考,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言。

这个有好多,我先来说说我用过的有哪些?

我在Windows上一开始用的是 win-TC,这是一个新手软件。

他有了界面,能够使用鼠标,具有语法高亮,可以嵌入汇编等特点,对新手一些,拜托了不能用鼠标的困难。

我给你看看它的样子

我再来讲一个: dev-C++

这个软件也挺好的,是windows下一款开发c/c++的开发环境,使用gcc为编译器,遵循标准,功能比较强大,语法高亮,可以进行单步调试(这对排除错误很重要),进行断点设置等功能,遵循C标准,是一款很强大的开发工具。

我来给你看看它的样子

再来最有一个,他就是 VC++

微软的产品,编译器,链接器,运行,调试等功能于一体的强大开发工具,特点是功能十分强大,对于新手来说需要一段时间去摸索.

你自己考虑用哪个吧!

祝愿你c语言学的越来越好!

C语言只是一门计算机编程语言,具体使用什么软件,你应该指的是要是用什么样的集成开发环境(IDE)去编译。因为编辑C语言,可以说只要是能打字的就可以,记事本都可以,但是编译的常见的有Visual Studio,GNU gcc等一般的编译工具,但这仅限上层应用工具编译的C语言代码,也仅供上层应用使用,在嵌入式中最常用的是Keil,IAR这两款IDE,也有部分使用eclipse,Qt Creator。具体看MCU支持的开发环境,我接触过的有Visual C++,Visual studio,Keil,IAR,Atmel Studio,eclipse,

Simplicity Studio,ST Visual Develop,这些都是C语言的编程工具,使用的编译交叉工具。有些用来编写C语言的,我用过记事本,notepad++,Vim,sourceinsight,sublime等等。

我是Java软件工程师,用专业角度分享干货。在这里推荐三款软件,足以满足你学C语言的需求。



最经典的莫过于VC6.0

VC6.0是大部分科班出身的第一款编程软件。本人软件工程专业,大一就是使用这款软件入门C语言,当然这款软件也可以用来学习c加加。



既然是学院派软件,那自然有教科书选择它作为编程C语言入门的原因,简朴的界面,容易上手的操作方式。

缺点是Windows10安装有点麻烦,Windows7及以下可以兼容,而且官网也不对此软件进行维护了。

升级版VC,Visual Studio

如果打算学C语言并且以后成为你谋生的工具,在Windows系统里首推VS,这款软件不是免费的但是有社区版,当然仔细找找可以弄到破解版本也不是难事。



VS是非常强大的编译软件,不仅仅可以写C语言以及其他带c的语言,还可以写Java等主流语言。个人用过2010版本写c加加,确实是不错的工具。

Linux系统必备,Vim

以上两种是Windows用户必备的C语言学习软件,如果你想在Linux里掌握更加纯粹的编程方式,那么可以用Vim,这是简单而又经典的C语言编译工具。



当然它与前两款有所不同,写完以后没有按钮给你点击运行,你必须在Linux的命令行上编译运行,这对你掌握C语言的原理会有更好的帮助,顺便还能把Linux知识掌握一番,一箭双雕。

C语言使用的软件可以分为两种,一种是为懒人设计的可视化编辑工具:IDE,一种是”心中有剑“的无可视化编辑工具:文本。下面我来详细说说。

一、C语言可视化编程工具IDE

IDE,全称叫做“Integrated Development Enviroment”(此处我擦把汗,还好英文没还给老师),中文名叫“集成开发环境”,关键字是“集成”。C语言IDE集成了C程序文件打开、保存、编译、运行、调试、工具等各种功能,所以叫做集成开发环境。

目前有很多种IDE,比较着名的有Visual Studio、Eclipse CDT、Dev-C++等,根据每人不同的爱好去选择。下面我大概说说Dev-C++主要功能。

1、新建一个C程序文件

开始编写C程序代码了,第一步当然是新建一个C程序代码了,在菜单“File”下找到“New”即可:

可以单独新建一个C程序代码文件,也可以新建一个项目。顺便说下,在“File”菜单下,还有诸多的其他功能,如打开已有的C语言程序代码、保存当前的C程序代码等,充分体现了IDE的“集成”概念。

2、编译运行一个C程序文件

写完一个C语言程序代码后,可以在“Execute”菜单下找到“Compile”和“Run”,也就是编译和运行的意思。

菜单“Execute”下的功能也是十分的丰富,有单独的编译、运行步骤,也有编译与运行的集成步骤,还有重新编译、C语言代码语法检查、参数设置、清空当前项目等诸多实用功能。

对于C语言初学者来说,Dev-C++是一个很不错的IDE编程环境。

二、C语言不可视化编程环境

很多C语言编程高手从来不用IDE,你跟他说IDE,他会一脸茫然“那是个啥东西?”不少程序员编程直接打开文本文件,在文本文件上写好C语言程序代码,然后GCC编译,结束!这就是采用不可视化编程环境。

例如上面的那段C语言代码就写在一个文本文件里,程序员靠着眼力看下程序没有什么语法错误,然后直接GCC编译C程序代码文件,如下:

上图是使用GCC编译时使用的一些编译参数。可以看到相比较于IDE的一键式编译,手动编译需要自己指定编译头文件目录、编译C语言函数库路径等,比较麻烦。不过这也是手动编译的魅力所在,就是其乐无穷!

编译完了之后会生成一个C程序可执行文件,直接运行这个可执行文件即可。

使用C语言编写程序,有两种方式:一种是可视化编程环境,也就是我们常说的IDE(集成开发环境),一种是非可视化编程环境,纯手工活儿。至于哪一种更好因人而异,希望能帮助你找到适合自己的编程开发环境!

老话说:欲先善其事必先利其器,所以说对于学习一种程序语言,选择一个良好的工具是至关重要的!选择工具之前,首先对语言得有个起码的认识:

C语言的显着特点

C语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。C语言的文件是由数据序列组成,可以构成二进制文件或文本文件。

常用的软件有

一般常用IDE(集成开发环境)的有Microsoft Visual C++,Code::Blocks,Dev-C++,Watcom C++ ,Borland C++ Builder,Borland C++,GNU DJGPP C++ ,High C,Lccwin32 C Compiler 3.1,Turbo C,C-Free,win-tc 等等

对于新手小白来说

可以选择Microsoft Visual C++,因为其特点是:界面友好,功能强大,尤其是调试也很方便。

安装的方法:(以下是网络安装经验,仅供参考)https://jingyan..com/article/4ae03de32997a63eff9e6b33.html

另外推荐几个视频学习网站

网易云课堂;腾讯课堂;慕课网等

***希望对您有帮助,有不同想法,欢迎在下方评论留言!!! 码上有理友聚在这等着你

推荐VS2017

1、安装VS2017 IDE软件,不多说,安装guide一步步安装即可。

2、选择File-New-Project,选择Visual C++-general-Empty Project新建一个C++工程。

3、在右侧的Resource files 右击Add-New Item选择C++ File(.cpp)

4、书生意气风发的写入Hello world

代码如下:

#include “stdio.h”

#include

Int main()

printf("Hello World!”);

system(“pause”);

return 0;

学c语言难道不是应该找学习方法吗?找APP是不是方向错了,


就算有课程的APP大多都是收费的,不如网上搜集点学习资料,找别人做好的开源代码,学习别人的思想


学习编程最重要的是自己敲代码

推荐一款windows和linux下通用的开放源码的全功能c/c++集成开发环境:code::blocks


这是linux下的界面。

windows版可以汉化。

也可以使用Turbo c 3.0

⑨ gdb调试c语言的疑惑

都exit了你还调试什么呀?程序都结束了。
你可以b exit,如果程序要退出之前设置一个断点。避免程序退出。
需要调试哪个函数,就b 一下好了,分数很少,简要回答了