Arduino Uno pins_arduino.h some questions

Hi all!

I have some doubts for what concerning the pin mapping. Inside the file

/usr/share/arduino/hardware/arduino/variants/standard/pins_arduino.h

there are these line of code :

const static uint8_t A0 = 14;
const static uint8_t A1 = 15;
const static uint8_t A2 = 16;
const static uint8_t A3 = 17;
const static uint8_t A4 = 18;
const static uint8_t A5 = 19;
const static uint8_t A6 = 20;
const static uint8_t A7 = 21;

what does mean 14 or 15 or 16 and so on? looking here http://arduino.cc/en/Hacking/PinMapping168 or in the board schematic I didn't find any references.

Thanks a lot

what does mean 14 or 15 or 16 and so on?

The usual - numbers following the sequence 10, 11, 12, 13..

They are aliases for the analogue pins.

Where are defined these aliases?

Or how the microcontroller knows that A0=14 is related to pin 23 ( PC0 - analog input 0 ) ?

There are 3 arrays in pins_arduino.h
The order of the pins in the array is the order of mapping to

One array has just ports listed - so may see a bunch of Bs, then Cs, then Ds
One array assigns the bits within that port - so you may see 0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,0,1,2,3,4,5,6
thus D0 would be PortB-bit0, D1 would be PortB-bit1, etc, up thru D19 being PortD-bit6 in this made up example.
Not all bits on all ports may exist.

The final array tells the code whether the pin has timer capability
"Not a timer" I think it has entries somewhat like that.

Most of the schematics, and the datasheet, show the Port-bit next to the physical pin.