A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://docs.leaflabs.com/static.leaflabs.com/pub/leaflabs/maple-docs/latest/lang/cpp/static.html below:

static — Maple v0.0.12 Documentation

static¶

The static keyword can be used to create variables that are visible to only one function. However, unlike local variables that get created and destroyed every time a function is called, static variables persist beyond the function call, preserving their data between function calls.

Variables declared as static will only be created and initialized the first time a function is called.

Note

This is only one use of the static keyword in C++. It has some other important uses that are not documented here; consult a reliable C++ reference for details.

Example¶

One use case for static variables is implementing counters that last longer than the functions which need them, but shouldn’t be shared to other functions. Here’s an example:

void setup() {
    SerialUSB.begin();
}

void loop() {
    int reading;
    if (timeToReadSensors()) {
        reading = readSensors();
    }
    // do something with reading
}

int readSensors() {
    static int numSensorReadings = 0;
    numSensorReadings++;
    if (numSensorReadings % 100 == 0) {
        SerialUSB.print("just got to another 100 sensor readings");
    }
    return analogRead(...);
}

In this example, the static variable numSensorReadings is initialized to zero the first time readSensors() is called, and then incremented, so it starts out at one. Subsequent calls to readSensors() won’t reset numSensorReadings to zero, because it was declared static. Thus, numSensorReadings is a count of the number of times that readSensors() has been called.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4