---
name: "avr_string"
section: "3avr"
platform: "linux"
package: "avr-libc"
version: "1:2.2.1-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/avr_string"
---

# avr\_string(3avr)

\<string.h\>: Strings

## NAME

avr\_string - \<string.h\>: Strings

## SYNOPSIS

### Macros

\#define **\_FFS**(x)\

## Detailed Description

```
#include <string.h>
```

The string functions perform string operations on `NULL` terminated strings.

**Note**

If the strings you are working on resident in program space (flash), you will need to use the string functions described in **\<avr/pgmspace.h\>: Program Space Utilities**.

## Macro Definition Documentation

### #define \_FFS(x)

This macro finds the first (least significant) bit set in the input value.

This macro is very similar to the function ffs() except that it evaluates its argument at compile-time, so it should only be applied to compile-time constant expressions where it will reduce to a constant itself. Application of this macro to expressions that are not constant at compile-time is not recommended, and might result in a huge amount of code generated.

**Returns**

The **\_FFS()** macro returns the position of the first (least significant) bit set in the word val, or 0 if no bits are set. The least significant bit is position 1. Only 16 bits of argument are evaluted.

## Author

Generated automatically by Doxygen for AVR-LibC from the source code.
