以下两个c语句之间的区别

时间:2016-09-23 05:26:14

标签: c static initialization extern

任何人都可以让我知道以下两个c语句在初始化,function contentLoaded() { var source = new EventSource('http://localhost:50665/Home/message'); var ul = document.getElementById("messages"); source.onmessage = function (e) { var li = document.createElement("li"); var returnedItem = JSON.parse(e.data) li.textContent = returnedItem.message + ' ' + returnedItem.item; ul.appendChild(li); } } window.addEventListener("DOMContentLoaded", contentLoaded, false); 和其他任何范围方面的区别。

注意:两者都是全局变量

public ActionResult Message()
        {
            var result = string.Empty;
            var sb = new StringBuilder();
            if (_data.TryTake(out result, TimeSpan.FromMilliseconds(1000)))
            {
                JavaScriptSerializer ser = new JavaScriptSerializer();
                var serializedObject = ser.Serialize(new { item = result, message = "hello" });
                sb.AppendFormat("data: {0}\n\n", serializedObject);
            }
            return Content(sb.ToString(), "text/event-stream");
        }

3 个答案:

答案 0 :(得分:1)

  1. table是两个声明中unsingned int类型的指针数组。
  2. 不同之处在于static数组的可见性仅限于您声明此数组的文件。
  3. 该链接有助于

    What does "static" mean?

答案 1 :(得分:0)

相似度:

  1. 两者都是100个整数指针的数组。
  2. 即使你没有初始化,两者都会被初始化为NULL 它们被宣布为全球性的。
  3. 两者都将存储在数据部分。
  4. 差异:

    1. 范围:第一个将具有将被访问的全局范围 你的程序的任何地方。第二个将具有文件范围手段 你无法从其他文件中访问这些指针。
    2. 请注意,如果您在同一文件中声明了两者,则静态声明将获得最高优先级。即,为表指针分配任何值都将获得静态初始化。

答案 2 :(得分:0)

unsigned int *table[100] = {NULL};

table是指向unsingned int的指针数组,并将整个数组元素初始化为NULL

static unsigned int *table[100] = {NULL};//declared as static means  initialized only once

table是指向static unsingned int的指针数组,并将整个数组元素初始化为NULL