[video output=day2 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=intro-to-c title="Intro to C on Windows - Day 2" vod_platform=youtube id=KF29ePTqWa4 annotator=jacebennett annotator=theinternetftw]
[0:05][News - You can get Visual Studio Community Edition for free (better than express)]
[2:35][VS tip - can load the last thing you had open when you start it next time]
[3:00][Recap on functions]
[4:00][The story of OutputDebugStringA (it all started with ASCII)]
[6:53][Encodings: numbers that mean something more]
[8:11][The Debugger]
[9:15][Breakpoints]
[10:38][VS: Finding the debug windows]
[11:25][The Watch window]
[13:37][See? Letters are numbers!]
[14:35][Escape sequences (\\n and friends)]
[17:40][Bases can trip you up]
[19:20][Back to escape sequences]
[20:53][Note: must type \\\\ to get real \\'s]
[22:10][Platform newline niceties]
[23:55][What to do if VS crashes (like it just did)]
[25:22][Windows vs. Linux vs. Mac OS newlines]
[26:59][Back to OutputDebugStringA]
[28:15][ASCII to Unicode]
[30:18][The consequences of that move: C Error Messages]
[30:55][A glimpse into the seedy Macro underbelly of the Win32 API]
[32:50][Note: Unicode is default in VS]
[34:04][Let's talk about variables]
[35:11][Which means we should talk about CPUs and memory]
[36:12][Asking for memory (declaring vars)]
[37:15][Neat learning anecdote (what does = mean?)]
[40:10][What is a variable *really*? (Let's 'watch' it)]
[41:20][Uninitialized memory can be anything]
[43:15][Debug 'Stepping' (running a program line by line)]
[44:23][Programming doesn't have to be math-y (int x = 5; covers a lot)]
[45:25][Different types of numbers in C (char, short, int, signed-ness)]
[46:24][A bit of binary o.o]
[49:30][char == 8 bits]
[49:37][How can you tell how much you can hold with 8 bits?]
[52:17][Signed-ness]
[54:06][The rest of the int family (short, int)]
[55:56][VS tip: F5 to start debug, Shift-F5 to stop]
[56:14][Math consequences of number size limits (overflows)]
[59:02][Okay. What is *actually* happening when we run programs?]
[59:37][Assembly]
[1:01:15][The registers window]
[1:02:00][What registers are]
[1:03:32][Memory addresses]
[1:04:56][The MOV instruction]
[1:06:08][Hex]
[1:07:28][VS Tip: hover over hex in assembly to see its decimal value]
[1:09:09][Watching the assembly work in the watch window]
[1:10:58][The size of eax vs. the size of a char]
[1:14:09][The moral: The Asm matches the C. You can read this]
[1:15:23][The moral: How things really work is worth knowing]
[/video]
