org.eclipse.cdt.core.dom.ast

## Interface IFunction

All Superinterfaces:
  org.eclipse.core.runtime.IAdaptable, IBinding

All Known Subinterfaces:
  ICPPConstructor, ICPPConstructorSpecialization, ICPPDeferredFunction, ICPPFunction, ICPPFunctionInstance, ICPPFunctionSpecialization, ICPPFunctionTemplate, ICPPMethod, ICPPMethodSpecialization

    public interface IFunction
    extends IBinding

This represents a function in the program. A function is also a scope for other bindings.

Restriction:
  This interface is not intended to be implemented by clients.
Restriction:
  This interface is not intended to be extended by clients.

### Field Summary

### Fields inherited from interface org.eclipse.cdt.core.dom.ast.IBinding

`EMPTY_BINDING_ARRAY`

### Method Summary

All Methods Instance Methods Abstract Methods
`IScope` `getFunctionScope()` Returns the function scope
`IParameter[]` `getParameters()` Returns the formal parameters of the function.
`IFunctionType` `getType()` Returns the IFunctionType for this function
`boolean` `isAuto()`
`boolean` `isExtern()`
`boolean` `isInline()` Returns `true` if the function is inline.
`boolean` `isNoReturn()` Returns `true` if this function never returns.
`boolean` `isRegister()`
`boolean` `isStatic()` Returns `true` if the function has the static storage-class specifier similarly for extern, auto, register.
`boolean` `takesVarArgs()` Returns `true` if this function takes variable arguments.

### Methods inherited from interface org.eclipse.cdt.core.dom.ast.IBinding

`getLinkage, getName, getNameCharArray, getOwner, getScope`

### Methods inherited from interface org.eclipse.core.runtime.IAdaptable

`getAdapter`

### Method Detail

#### getParameters

    IParameter[] getParameters()

Returns the formal parameters of the function.

#### getFunctionScope

    IScope getFunctionScope()

Returns the function scope

#### getType

    IFunctionType getType()

Returns the IFunctionType for this function

#### isStatic

    boolean isStatic()

Returns `true` if the function has the static storage-class specifier similarly for extern, auto, register.

#### isExtern

    boolean isExtern()

#### isAuto

    boolean isAuto()

#### isRegister

    boolean isRegister()

#### isInline

    boolean isInline()

Returns `true` if the function is inline.

#### takesVarArgs

    boolean takesVarArgs()

Returns `true` if this function takes variable arguments.

#### isNoReturn

    boolean isNoReturn()

Returns `true` if this function never returns. Based on 'noreturn' attribute in the function declaration.

Since:
  5.4