The #pragma is more like a #define in terms of names, as opposed to a variable declaration. Your code is very close; something like this would work fine; #pragma config(Motor, motorA, light_blue, tmotorNXT, PIDControl, encoder) void testThing (tMotor motor_name) { motor[motor_name] = 20; // set power to 20 } task main() { testThing(light_blue); } The actual type of a tmotor is an enum (and used like an int) and the definition can be found in RobotCintrinsics.c included with the product. for exmaple; #if (1) // the actual 'enum' values for 'tMotor' are automatically defined by the ROBOTC compiler. Each platform // and circuit board type has its own set of "enum names" and it was becoming too hard to manage them in // this file. So they are automatically configured by the compiler which has better utilities for managing // differences between platform types. typedef enum tMotor; #else // The old definitions are temporarily maintained here as well until the new implementation is confirmed // to be working well! #if defined(NXT) || defined(TETRIX) typedef enum { motorA = 0, motorB = 1, motorC = 2, mtr_S1_C1_1 = 3, ... etc