---
name: "IntObj"
section: "3tcl"
platform: "linux"
package: "tcl8.3-doc"
version: "8.3.5-13"
release: "Debian 5.0 (Lenny)"
platforms: ["linux"]
url: "https://new.carta.tech/IntObj/3tcl"
---

# IntObj(3tcl)

manipulate Tcl objects as integers

```

```

## NAME

Tcl\_NewIntObj, Tcl\_NewLongObj, Tcl\_SetIntObj, Tcl\_SetLongObj, Tcl\_GetIntFromObj, Tcl\_GetLongFromObj - manipulate Tcl objects as integers

## SYNOPSIS

```
#include <tcl.h>

Tcl_Obj *
Tcl_NewIntObj(intValue)

Tcl_Obj *
Tcl_NewLongObj(longValue)

Tcl_SetIntObj(objPtr, intValue)

Tcl_SetLongObj(objPtr, longValue)

int
Tcl_GetIntFromObj(interp, objPtr, intPtr)

int
Tcl_GetLongFromObj(interp, objPtr, longPtr)
```

## ARGUMENTS

- int *intValue* (in)

  Integer value used to initialize or set an integer object.

- long *longValue* (in)

  Long integer value used to initialize or set an integer object.

- Tcl\_Obj *\*objPtr* (in/out)

  For **Tcl\_SetIntObj** and **Tcl\_SetLongObj**, this points to the object to be converted to integer type. For **Tcl\_GetIntFromObj** and **Tcl\_GetLongFromObj**, this refers to the object from which to get an integer or long integer value;  if *objPtr* does not already point to an integer object, an attempt will be made to convert it to one.

- Tcl\_Interp *\*interp* (in/out)

  If an error occurs during conversion, an error message is left in the interpreter's result object unless *interp* is NULL.

- int *\*intPtr* (out)

  Points to place to store the integer value obtained by **Tcl\_GetIntFromObj** from *objPtr*.

- long *\*longPtr* (out)

  Points to place to store the long integer value obtained by **Tcl\_GetLongFromObj** from *objPtr*.

  ```

  ```

## DESCRIPTION

These procedures are used to create, modify, and read integer Tcl objects from C code. **Tcl\_NewIntObj**, **Tcl\_NewLongObj**, **Tcl\_SetIntObj**, and **Tcl\_SetLongObj** create a new object of integer type or modify an existing object to have integer type.  **Tcl\_NewIntObj** and **Tcl\_SetIntObj** set the object to have the integer value given by *intValue*, while **Tcl\_NewLongObj** and **Tcl\_SetLongObj** set the object to have the long integer value given by *longValue*. **Tcl\_NewIntObj** and **Tcl\_NewLongObj** return a pointer to a newly created object with reference count zero. These procedures set the object's type to be integer and assign the integer value to the object's internal representation *longValue* member. **Tcl\_SetIntObj** and **Tcl\_SetLongObj** invalidate any old string representation and, if the object is not already an integer object, free any old internal representation.

**Tcl\_GetIntFromObj** and **Tcl\_GetLongFromObj** attempt to return an integer value from the Tcl object *objPtr*. If the object is not already an integer object, they will attempt to convert it to one. If an error occurs during conversion, they return **TCL\_ERROR** and leave an error message in the interpreter's result object unless *interp* is NULL. Also, if the long integer held in the object's internal representation *longValue* member can not be represented in a (non-long) integer, **Tcl\_GetIntFromObj** returns **TCL\_ERROR** and leaves an error message in the interpreter's result object unless *interp* is NULL. Otherwise, both procedures return **TCL\_OK** and store the integer or the long integer value in the address given by *intPtr* and *longPtr* respectively. If the object is not already an integer object, the conversion will free any old internal representation.

## SEE ALSO

Tcl\_NewObj, Tcl\_DecrRefCount, Tcl\_IncrRefCount, Tcl\_GetObjResult

## KEYWORDS

integer, integer object, integer type, internal representation, object, object type, string representation
