Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7034901
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 28, 20262026-05-28T01:14:28+00:00 2026-05-28T01:14:28+00:00

If I’m using a singleton pattern (yeah, I know – they’re usually bad)… and

  • 0

If I’m using a singleton pattern (yeah, I know – they’re usually bad)… and I had an instance function like so:

MySingleton* Instance() {
    static MySingleton instance;
    return &instance;
}

what storage class is instance?

I’m reading “Programming With POSIX Threads by David R. Butenhof”, and I came across text that said:

Most of the time you’ll probably declare condition variables using the extern or static storage class at file scope, that is, outside of any function. They should have normal (extern) storage class if they are used by other files, or static storage class if they are used only within the file that declares the variable.

Since this static is inside a function, is it auto? or is the class different because of the static key word?

If I moved the ‘instance’ variable to be static and global (not in any function) in its file – could I still give a reference to it to another file, or would that not work?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-28T01:14:29+00:00Added an answer on May 28, 2026 at 1:14 am

    I think the author has conflated storage duration and linkage, although the advice what keywords to use is correct.

    Your function-scope variable instance has static storage duration. Without the static keyword it would have automatic storage duration.

    An object at file scope always has static storage duration (well, or thread storage duration in C++11 with keyword thread_local). Using the static keyword at file scope gives the object internal linkage, extern gives it external linkage, they don’t affect storage duration.

    Describing something has having “static storage class” is correct, since static is a so-called “storage class specifier”, but it’s not the whole story since the meaning of static in file scope is different from the meaning in function scope.

    You can pass around a reference to an object with static storage duration to code from other translation units. It doesn’t matter whether it has file scope or function scope, and it doesn’t matter what its linkage is. “They should have normal (extern) storage class if they are used by other files” just means that a global needs external linkage if other files are going to refer to it by name, since a global name with internal linkage refers to a different object in each TU. Technically it’s the name that has linkage, not the object.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a string like this: La Torre Eiffel paragonata all’Everest What PHP function
I am using Paperclip to handle profile photo uploads in my app. They upload
I'm new to using the Perl treebuilder module for HTML parsing and can't figure
That's pretty much it. I'm using Nokogiri to scrape a web page what has
link Im having trouble converting the html entites into html characters, (&# 8217;) i
I would like to count the length of a string with PHP. The string
For some reason, after submitting a string like this Jack’s Spindle from a text
I've got a string that has curly quotes in it. I'd like to replace
I'm using v2.0 of ClassTextile.php, with the following call: $testimonial_text = $textile->TextileRestricted($_POST['testimonial']); ... and
We're building an app, our first using Rails 3, and we're having to build

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.