图书介绍

C专家编程 英文版pdf电子书版本下载

C专家编程  英文版
  • (美)范德林登著 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:9787115308603
  • 出版时间:2013
  • 标注页数:353页
  • 文件大小:15MB
  • 文件页数:372页
  • 主题词:C语言-程序设计-英文

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
下载压缩包 [复制下载地址] 温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页

下载说明

C专家编程 英文版PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

1.C Through the Mists of Time 1

The Prehistory of C 1

Early Experiences with C 4

The Standard I/O Library and C Preprocessor 6

K&R C 9

The Present Day:ANSI C 11

It's Nice,but Is It Standard? 14

Translation Limits 16

The Structure of the ANSI C Standard 17

Reading the ANSI C Standard for Fun,Pleasure,and Profit 22

How Quiet is a"Quiet Change"? 25

Some Light Relief—The Implementation-Defined Effects of Pragmas... 29

2.It's Not a Bug,It's a Language Feature 31

Why Language Features Matter—The Way the Fortran Bug Really Happened! 31

Sins of Commission 33

Switches Let You Down with Fall Through 33

Available Hardware Is a Crayon? 39

Too Much Default Visibility 41

Sins of Mission 42

Overloading the Camel's Back 42

"Some of the Operators Have the Wrong Precedence" 44

The Early Bug gets() the Internet Worm 48

Sins of Omission 50

Mail Won't Go to Users with an"f"in Their Usernames 50

Space—The Final Frontier 53

A Digression into C+++ Comments 55

The Compiler Date Is Corrupted 55

Lint Should Never Have Been Separated Out 59

Some Light Relief—Some Features Really Are Bugs! 60

References 62

3.Unscrambling Declarations in C 63

Syntax Only a Compiler Could Love 64

How a Declaration Is Formed 66

A Word About structs 68

A Word About unions 71

A Word About enums 73

The Precedence Rule 74

Unscrambling C Declarations by Diagram 75

typedef Can Be Your Friend 78

Difference Between typedef int x[10]and #define x int[10] 80

What typedef struct foo{...foo}foo;Means 81

The Piece of Code that Understandeth All Parsing 83

Further Reading 86

Some Light Relief—Software to Bite the Wax Tadpole... 86

4.The Shocking Truth:C Arrays and Pointers Are NOT the Same! 95

Arrays Are NOT Pointers! 95

Why Doesn't My Code Work? 96

What's a Declaration? What's a Definition? 97

How Arrays and Pointers Are Accessed 98

What Happens When You"Define as Array/Declare as Pointer" 101

Match Your Declarations to the Definition 102

Other Differences Between Arrays and Pointers 103

Some Light Relief—Fun with Palindromes! 105

5.Thinking of Linking 109

Libraries,Linking,and Loading 110

Where the Linker Is in the Phases of Compilation 110

The Benefits of Dynamic Linking 113

Five Special Secrets of Linking with Libraries 118

Watch Out for Interpositioning 123

Generating Linker Report Files 128

Some Light Relief—Look Who's Talking:Challenging the Turing Test 129

Eliza 130

Eliza Meets the VP 130

Doctor,Meet Doctor 131

The Prize in Boston 133

Conclusions 133

Postscript 135

Further Reading 135

6.Poetry in Motion:Runtime Data Structures 137

a.out and a.out Folklore 138

Segments 139

What the OS Does with Your a.out 142

What the C Runtime Does with Your a.out 145

The Stack Segment 145

What Happens When a Function Gets Called:The Procedure Activation Record 146

The auto and static keywords 151

A Stack Frame Might Not Be on the Stack 152

Threads of Control 152

setjmp and longjmp 153

The Stack Segment Under UNIX 155

The Stack Segment Under MS-DOS 156

Helpful C Tools 156

Some Light Relief—Programming Puzzles at Princeton 161

For Advanced Students Only 163

7.Thanks for the Memory 165

The Intel 80x86 Family 165

The Intel 808x6 Memory Model and How It Got That Way 170

Virtual Memory 174

Cache Memory 177

The Data Segment and Heap 181

Memory Leaks 183

How to Check for a Memory Leak 184

Bus Error,Take the Train 187

Bus Error 188

Segmentation Fault 189

Some Light Relief—The Thing King and the Paging Game 195

8.Why Programmers Can't Tell Halloween from Christmas Day 201

The Potrzebie System of Weights and Measures 201

Making a Glyph from Bit Patterns 203

Types Changed While You Wait 205

Prototype Painfulness 207

Where Prototypes Break Down 209

Getting a Char Without a Carriage Return 212

Implementing a Finite State Machine in C 217

Software Is Harder than Hardware! 219

How and Why to Cast 223

Some Light Relief—The International Obfuscated C Code Competition 225

9.More about Arrays 239

When an Array Is a Pointer 239

Why the Confusion? 240

Rule 1:An"Array Name in an Expression"Is a Pointer 243

Rule 2:C Treats Array Subscripts as Pointer Offsets 244

Rule 3:An"Array Name as a Function Parameter"Is a Pointer 246

Why C Treats Array Parameters as Pointers 246

How an Array Parameter Is Referenced 247

Indexing a Slice 250

Arrays and Pointers Interchangeability Summary 251

C Has Multidimensional Arrays... 251

...But Every Other Language Calls Them"Arrays of Arrays" 251

How Multidimensional Arrays Break into Components 254

How Arrays Are Laid Out in Memory 256

How to Initialize Arrays 257

Some Light Relief—Hardware/Software Trade-Offs 260

10.More About Pointers 263

The Layout of Multidimensional Arrays 263

An Array of Pointers Is an"Illiffe Vector" 265

Using Pointers for Ragged Arrays 269

Passing a One-Dimensional Array to a Function 273

Using Pointers to Pass a Multidimensional Array to a Function 273

Attempt 2 275

Attempt 3 276

Attempt 4 277

Using Pointers to Return an Array from a Function 277

Using Pointers to Create and Use Dynamic Arrays 280

Some Light Relief—The Limitations of Program Proofs 287

Further Reading 291

11.You Know C.So C++ is Easy! 293

Allez-OOP! 293

Abstraction—Extracting Out the Essential Characteristics of a Thing 296

Encapsulation—Grouping Together Related Types,Data,and Functions 298

Showing Some Class—Giving User-Defined Types the Same Privileges as Predefined Types 299

Availability 301

Declarations 301

How to Call a Method 304

Constructors and Destructors 305

Inheritance—Reusing Operations that Are Already Defined 307

Multiple Inheritance—Deriving from Two or More Base Classes 311

Overloading—Having One Name for the Same Action on Different Types 312

How C+++ Does Operator Overloading 313

Input/Output in C+++ 314

Polymorphism—Runtime Binding 315

Explanation 317

How C+++ Does Polymorphism 318

Fancy Pants Polymorphism 319

Other Corners of C+++ 320

If I Was Going There,I Wouldn't Start from Here 322

It May Be Crufty,but It's the Only Game in Town 325

Some Light Relief—The Dead Computers Society 328

Some Final Light Relief—Your Certificate of Merit! 330

Further Reading 331

Appendix:Secrets of Programmer Job Interviews 333

Silicon Valley Programmer Interviews 333

How Can You Detect a Cycle in a Linked List? 334

What Are the Different C Increment Statements For? 335

How Is a Library Call Different from a System Call? 338

How Is a File Descriptor Different from a File Pointer? 340

Write Some Code to Determine if a Variable Is Signed or Not 341

What Is the Time Complexity of Printing the Values in a Binary Tree? 342

Give Me a String at Random from This File 343

Some Light Relief—How to Measure a Building with a Barometer 344

Further Reading 346

Index 349

精品推荐