Question about include statements and details in Arduino.h file from core library This is more of a C/C++ question. However the files I am asking about are a part of the Arduino library. 

In /arduino-1.6.5-r5/hardware/arduino/avr/cores/arduino/Arduino.h :

#ifndef Arduino_h
#define Arduino_h

#include &lt;stdlib.h&gt;
#include &lt;stdbool.h&gt;
#include &lt;string.h&gt;
#include &lt;math.h&gt;

#include &lt;avr/pgmspace.h&gt;
#include &lt;avr/io.h&gt;
#include &lt;avr/interrupt.h&gt;

#include "binary.h"

#ifdef __cplusplus
extern "C"{
#endif


How are these blocks found at compile time in the main sketch?

#include &lt;avr/pgmspace.h&gt;
#include &lt;avr/io.h&gt;
#include &lt;avr/interrupt.h&gt;


Does #include &lt;avr/somelibrary.h&gt; mean that this is a standard library from either avr-g++ or avr-gcc? As opposed to a standard g++ or gcc compiler?

One last question, how can there be an Arduino.h without an Arduino.c? I searched through the project but could not find an Arduino.c. All of these are probably stupid questions, as I am in the process of learning C/C++. I am completely new to it.
Does #include &lt;avr/somelibrary.h&gt; mean that this is a standard library from either avr-g++ or avr-gcc? As opposed to a standard g++ or gcc compiler?


No. It simply means that the compiler should check both its built-in include paths as well as any passed via the -I command line option (or its local equivalent) for a file called "avr/somelibrary.h". That AVR GCC knows where AVR Libc is located is incidental.


  One last question, how can there be an Arduino.h without an Arduino.c?


There is no obligation to match each header file with a .c/.cc/.cpp file, or vice versa.