Smaller C - Helion
ISBN: 9781098100285
stron: 314, Format: ebook
Data wydania: 2021-05-27
Księgarnia: Helion
Cena książki: 194,65 zł (poprzednio: 226,34 zł)
Oszczędzasz: 14% (-31,69 zł)
For makers looking to use the smallest microcontrollers or to wring the highest performance out of larger ones, the C language is still the best option. This practical book provides a solid grounding in C basics for anyone who tinkers with programming microcontrollers. You'll explore the many ways C enables developers and makers to get big results out of tiny devices.
Author Marc Loy shows you how to write clean, maintainable C code from scratch. This language and its cousin, C++, are still widely used to write low-level code for device drivers or operating systems. By understanding C syntax and its quirks, you'll gain an enduring computer language literacy that will help you pick up new languages and styles more easily.
- Learn C fundamentals, such as data types, flow control, and functions
- Explore memory management including how programs work on small devices
- Understand answers provided in online forums such as Reddit or Stack Overflow
- Write efficient, custom C code that's both readable and maintainable
- Analyze the performance of your code and weigh optimizations
- Evaluate third-party libraries for use in your own projects
- Create your own libraries to share with others
Osoby które kupowały "Smaller C", wybierały także:
- Windows Media Center. Domowe centrum rozrywki 66,67 zł, (8,00 zł -88%)
- Ruby on Rails. Ćwiczenia 18,75 zł, (3,00 zł -84%)
- Przywództwo w świecie VUCA. Jak być skutecznym liderem w niepewnym środowisku 58,64 zł, (12,90 zł -78%)
- Scrum. O zwinnym zarządzaniu projektami. Wydanie II rozszerzone 58,64 zł, (12,90 zł -78%)
- Od hierarchii do turkusu, czyli jak zarządzać w XXI wieku 58,64 zł, (12,90 zł -78%)
Spis treści
Smaller C eBook -- spis treści
- Preface
- How to Use This Book
- Conventions Used in This Book
- Using Code Examples
- OReilly Online Learning
- How to Contact Us
- Acknowledgments
- 1. The ABCs of C
- Strengths and Weaknesses
- Getting Started
- Tools Required
- Windows
- GNU tools on Windows
- macOS
- Linux
- Windows
- Creating a C Hello, World
- Compiling Your Code
- Running Your Code
- Tools Required
- Next Steps
- 2. Storing and Stating
- Statements in C
- Statement Separators
- Statement Flow
- Variables and Types
- Getting User Input
- Strings and Characters
- Special characters
- Strings
- Numbers
- Integer types
- Floating point types
- Variable Names
- Variable Assignments
- Literals
- printf() and scanf()
- printf() Formats
- Tailored Output
- scanf() and Parsing Inputs
- Operators and Expressions
- Arithmetic Operators
- Order of Operations
- Type Casting
- Next Steps
- Statements in C
- 3. Flow of Control
- Boolean Values
- Comparison Operators
- Logical Operators
- Branching
- The if Statement
- else
- else if chains
- if gotchas
- The switch Statement
- Handling defaults
- The if Statement
- The Ternary Operator and Conditional Assignment
- Loop Statements
- The for Statement
- Increment shortcuts
- for gotchas
- The while Statement
- The do/while Variation
- The for Statement
- Nesting
- Nested Loops and Tables
- Variable Scope
- Exercises
- Next Steps
- Boolean Values
- 4. Bits and (Many) Bytes
- Storing Multiple Things with Arrays
- Creating and Manipulating Arrays
- Length versus capacity
- Initializing arrays
- Accessing array elements
- Changing array elements
- Iterating through arrays
- Review of Strings
- Initializing strings
- Accessing individual characters
- Multidimensional Arrays
- Accessing Elements in Multidimensional Arrays
- Creating and Manipulating Arrays
- Storing Bits
- Binary, Octal, Hexadecimal
- Octal and Hexadecimal Literals in C
- Input and Output of Octal and Hex Values
- Bitwise Operators
- Mixing Bits and Bytes
- Conversion Answers
- Next Steps
- Storing Multiple Things with Arrays
- 5. Functions
- Familiar Functions
- Function Flow
- Simple Functions
- Sending Information to Functions
- Passing Simple Types
- Passing Strings to Functions
- Multiple Types
- Exiting a Function
- Returning Information
- Using Returned Values
- Ignoring Returned Values
- Nested Calls and Recursion
- Recursive Functions
- Variable Scope
- Global Variables
- Masking global variables
- Global Variables
- The main() Function
- Return values and main()
- Command-Line Arguments and main()
- Next Steps
- 6. Pointers and References
- Addresses in C
- The NULL Value and Pointer Errors
- Arrays
- Local Variables and the Stack
- Global Variables and the Heap
- Pointer Arithmetic
- Array Pointers
- Functions and Pointers
- Managing Memory with Arrays
- Allocating with malloc()
- Deallocating with free()
- C Structures
- Defining Structures
- Assigning and Accessing Structure Members
- Pointers to Structures
- Functions and Structures
- Pointer Syntax Recap
- Next Steps
- Addresses in C
- 7. Libraries
- The C Standard Library
- stdio.h
- stdlib.h
- atoi()
- rand() and srand()
- exit()
- string.h
- math.h
- time.h
- ctype.h
- Putting It Together
- Filling In Strings
- Finding Our Interest
- Finding New Libraries
- Next Steps
- The C Standard Library
- 8. Real-World C With Arduino
- Arduino IDE (Win, Mac, Linux)
- Installing on Windows
- Installing on macOS
- Installing on Linux
- Your First Arduino Project
- Selecting Your Board
- Hello, LED!
- An External LED Upgrade
- Arduino Libraries
- Managing Libraries
- Using Arduino Libraries
- Arduino Sketches and C++
- C++ Objects and Variables
- More Practice with Objects
- C++ Considerations
- Object Homework
- Next Steps
- Arduino IDE (Win, Mac, Linux)
- 9. Smaller Systems
- The Arduino Environment
- Special Values
- Special Types
- Built-In Functions
- Trying Out the Arduino Stuff
- Microcontroller I/O
- Sensors and Analog Input
- The Serial Monitor
- Is It Hot in Here?
- Segmented Displays
- Buttons and Digital Input
- Just How Hot Is It?
- Memory Management on Arduino
- Flash (PROGMEM)
- Storing values in flash
- Reading values from flash
- Reading strings from flash
- SRAM
- Stacks and heaps
- Global variables in Arduino
- EEPROM
- Remembering Choices
- Flash (PROGMEM)
- Interrupts
- Interrupt Service Routines
- Interrupt-Driven Programming
- Exercises
- Next Steps
- The Arduino Environment
- 10. Faster Code
- The Setup
- Floating-Point Versus Integer Math
- Floating-Point Math Alternatives
- Integer Math Versus No Math
- Lookup Tables
- The Project So Far
- The Power of Powers of 2
- Loop Optimizations
- Unrolling for Fun and Profit
- Recursion Versus Iteration
- String Versus char[]
- Our Final Offer
- Next Steps
- 11. Custom Libraries
- Creating Your Own Library
- Preprocessor Directives
- Preprocessor Macros
- Custom Type Definitions
- Our Car Project
- Multifile Projects
- Code (.ino) Files
- Header Files
- Importing Custom Libraries
- Facilitating Communication
- Retrofitting Our Car
- Creating a Controller
- Creating the Library
- The libraries folder
- Our radio-control library header
- Our radio-control library code
- Updating the Car Project
- Getting It Under Control
- Go Driving!
- Documentation and Distribution
- Keywords
- Including examples
- Sharing online
- Next Steps
- Creating Your Own Library
- 12. Next Next Steps
- Intermediate and Advanced Topics
- IoT and Arduino
- Arduino Source Code
- Other Microcontrollers
- Industry C/C++
- Back to the Future
- Intermediate and Advanced Topics
- A. Hardware and Software
- Getting the Code
- Getting the Hardware: Adafruit
- VS Code
- Arduino IDE
- Fritzing
- GNU Compiler Collection
- B. printf() Format Specifier Details
- Specifier Syntax
- Specifier Types
- Specifier Flags
- Width and Precision
- Common Formats
- Specifier Syntax
- Index