# ARGTYP Parameters

> [HTML Version](argtyp-parameters.htm)

**Warning**: It is easy to accidentally specify _arg_ when you meant _@arg_, both of which are syntactically correct (assuming _arg_ is the name of an argument in the current context) but have vastly different meaning. To help avoid this mistake, the compiler (as of edit 1065) will treat _arg_ as an error if it matches a current argument name; if you really meant to reference the argument by number, use a literal number or a variable that isn't a current argument. 

**Parameters**

Note that these parameters apply to all of the .ARG... functions.

_argno_  ([Unsigned int](integer-unsigned.md))  \[in\]

The ordinal number of the argument being queried, starting from 1. Note that in the case of [Named Parameters](namedparameters.md), the parameter numbers are determined by the function declaration or subroutine DEFXCALL directive, not necessarily by the order specified in the calling statement. If the _argno_ passed is invalid, the return value of the function will be -1.

_@arg_  (Literal parameter name)  \[in\]

This syntax provides an alternate way to reference the parameter of interest by its name rather than its ordinal number. The concept is similar to that used for XPUTARG _@arg_ : _@arg_ is treated by the compiler as a macro for the argument number corresponding to the argument _arg_ as defined in the function/procedure definition or as retrieved in an SBX using XGETARG(S). 