static在函数声明的时候加还是函数定义的时候加

如题,我现在有一个函数先声明后定义的,程序能正常运行,
然后我想在这个函数前加上static,我试过只在声明的时候加,
只在定义的时候加,还有声明和定义的时候都加,都无法通过
编译,linux下c语言写的,我现在不想把这个函数的代码提到
前面去,就想要先声明后定义,而且要给它加上static,请问
该怎么解决?

6个回答

这个是需要都加的,静态函数是需要定义和声明同步的

pennytang
pennytang 回复k0115: 在函数前面加static,他的作用域只能用于本文件,其它文件中的函数想调用就出错。
接近 2 年之前 回复
k0115
z小康 都加和只加一个我都是过,但是没办法通过编译呀,不加static程序可以正常运行,或是把函数定义放在使用之前不声明也可以正常运行
接近 2 年之前 回复

都需要加的,如果不清楚的话,有一个简单的办法,就是将静态函数定义在源文件的上面,也就是将需要提供给外部调用的接口定义在静态函数之后,这样就不需要对静态函数进行申明了(也就是直接定义一个静态函数)。提供给外部调用的接口就可以直接调用静态函数了,省去静态函数申明这一步了。

好像是编程环境的问题,在vs下面试了下确实能跑过,但是linux下面怎么加都编不过,请问有人遇到过这种问题吗?是要在编译的时候加什么选项吗?

qq_37487977
utopia、 需要都加
接近 2 年之前 回复
k0115
z小康 就是main函数里是void a(); a(); return 0; 然后在man函数后面定义a函数,输出hello world, 然后只要加上static就无法通过编译了
接近 2 年之前 回复
k0115
z小康 回复wh_2396: 我试了一下,写了个hello world先声明后定义,加上static也编译不通过
接近 2 年之前 回复
k0115
z小康 回复wh_2396: gcc http.c -o http -lpthread http.c: In function ‘service’: http.c:83: error: invalid storage class for function ‘get_line’ http.c: At top level: http.c:107: error: static declaration of ‘get_line’ follows non-static declaration http.c:84: note: previous implicit declaration of ‘get_line’ was here make: *** [http] Error 1大佬帮我看下呗
接近 2 年之前 回复
wh_2396
wh_ 需要加什么选项要看报的什么错,这个是最快最直接的方法,年轻人
接近 2 年之前 回复

你的声明和定义是在一个文件中吗?还是说声明和定义是在不同文件中

一般情况,静态函数不用写在头文件中,只将接口函数放在头文件,静态函数在被停调用前一定要声明,至于加static,建议声明和定义都加,但是只是定义时加是不会报错的。

c的话都要加。如果是c++,定义static成员变量,在类中声明,并在类外(不声明static)进行初始化。而且无需在定义中再次声明static

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
static 函数定义在头文件中有什么作用

static 函数定义在头文件中有什么作用?学渣求教,static 不就是要限制作用域吗?

在类内声明一个函数既用static又用inline在类外怎么实现

``` static inline double getTotal(); ``` 在类外要不要写static 和inline

C++中静态成员变量和静态成员函数的定义区别

楼主小白,请教一下大家,为什么C++中,静态成员函数可以在类中定义。 如 ``` class A { public: static void func() { cout << "test" << endl; } }; ``` 而静态成员变量却不能在类里面定义 ``` class A { public: static int a = 1; \\error }; ``` 为什么静态成员函数和静态成员变量会有这两种差异?小弟在此先谢谢啦

c语言工程,在.h文件中声明的函数是不是在同名.c文件中定义?

比如在main.c中已经include"output.h",main函数中要用到output.h声明的PrintMessage函数, 那么PrintMessage函数是不是在output.c中定义?

c语言static加与不加的区别

问错了,编辑一下,我是想问为什么加了static之后输出的y全部是3,但是x的输出又是根据static的y的变化得到的? 我知道x+=y++的意思,x,y的定义写在函数外面是什么意思。 以及请问能否详细解释加和不加static的输出结果是怎么得到的,感谢。 ``` #include <stdio.h> int x = 0,y = 3; void fun() { // static int y = 1; x+=y++; } void main() { int i; for(i = 1; i < 4; i++) { fun(); printf("%d,%d\n",x,y); } } ```

静态成员函数为什么不能声明成 const 的?

《C++ Primer》第五版,中文版。269 页。 类似的,静态成员函数也不与任何对象绑定在一起,它们不包含 this 指针。作为结果,静态成员不能声明成 const 的,而且我们也不能在 static 函数体内使用this 指针。

C语言 static定义变量的问题

static定义一个变量到底需不需要加上数据类型呢?这里没加也没出错 #include<stdio.h> int main() { int i; static a=1; for(i=0;i<5;i++) a=a+i; printf("%d\n",a); } ![图片说明](https://img-ask.csdn.net/upload/201710/15/1508049072_132357.png)

在学习线性链表类型定义的时候,发现只有结构体的定义,没有里面的内容。同时发现在C#中的命名空间中函数也是只有声明没有内容,不知道系统如何实现操作?

如下面代码片段实现结果: ~~~ //带头结点的线性链表类型定义: typedef struct LNode { ElemType date; struct LNode *next; }*Link,*Position; typedef struct{ Link head,tail; int len; }LinkList; //下面就是实现方法,但是没有实现步骤。 Status MakeNode(Link &p,ElemType e); void FreeNode(Link &p); Status InitLIst(LinkList &L); //还有部分实现方法就不一一例举了 ~~~ 然后再查看C#中的Console的内部函数时候,发现也是这样: ~~~ public static bool IsInputRedirected { get; } public static int BufferHeight { get; set; } public static int BufferWidth { get; set; } public static bool CapsLock { get; } //以上例举的是构造函数,而实现其他方法的函数与这个结构类似,只有函数定义和内部参数,没有实现函数的过程。 ~~~ 此处列举了4个构造函数,这些函数都是只有定义没有内容,没有实现方法,不知道他们是如何让计算机执行操作的,例如:Console.WriteLine("Hello,World!")这样最简单的程序。计算机是如何调用WriteLine()函数的?没有实现方法,如何输出里面的字符?

在函数体{ }之前加const关键字的作用是什么?

如题!!! 如题~~~ 如题### ``` int getRef( )const() {rerturn a;} ``` 这个语句是正确的嘛?

缺省构造函数不能处理隐式超构造函数抛出的异常类型 IOException。必须定义显式构造函数

int lastnum = getNum(source.getProperty("fileName")); public static int getNum(String Filename) throws IOException { InputStream myxls; myxls = new FileInputStream(Filename); sr = new XSSFWorkbook(myxls); XSSFSheet sheet = sr.getSheetAt(0);// 第一个工作表 return sheet.getLastRowNum();// 获取第一个工作表的行数 } 第一行报错:缺省构造函数不能处理隐式超构造函数抛出的异常类型 IOException。必须定义显式构造函数

stm32中可以定义2个一样名字的函数吗,比如另个NVIC_Configuration()

我现在看到的一个程序里面他一共定义了2个这个函数,一个是在main函数所在的源文件中,另一个里面的他前面加了static,加static的那个函数是不是只在那个源文件中才能被调用,而且是从定义它的地方开始,? 我可以2个都加static吗?这个函数设计到外设的优先级,定义2个函数,如果他们的优先级设置是一样的,主优先级和此优先级都是0,那么如果他们同时中断会不会有问题

C#中,用类定义类中的函数,不知道怎么理解?

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Complex z1 = new Complex(73, 89); Complex z2 = new Complex(21, 16); Complex z3 = Complex.Add(z1, z2); } class Complex { public double a; public double b; public Complex(double real, double imagi) { a = real; b = imagi; } public static Complex Add(Complex z1, Complex z2) { return new Complex(z1.a + z2.a, z1.b + z2.b); } } } } 不能理解静态函数中,用自身类定义类内的函数,应该怎么理解?

Typescript声明文件中怎么做到可以静态调用接口中的函数

我在阅读commander模块的声明文件,在代码底部export导出的部分中,声明文件将一个接口导出,commander/typings/index.d.ts的代码如下 ```typescript // Type definitions for commander 2.11 // Project: https://github.com/visionmedia/commander.js // Definitions by: Alan Agius <https://github.com/alan-agius4>, Marcelo Dezem <https://github.com/mdezem>, vvakame <https://github.com/vvakame>, Jules Randolph <https://github.com/sveinburne> // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped ///<reference types="node" /> declare namespace local { class Option { flags: string; required: boolean; optional: boolean; bool: boolean; short?: string; long: string; description: string; /** * Initialize a new `Option` with the given `flags` and `description`. * * @param {string} flags * @param {string} [description] */ constructor(flags: string, description?: string); } class Command extends NodeJS.EventEmitter { [key: string]: any; args: string[]; /** * Initialize a new `Command`. * * @param {string} [name] */ constructor(name?: string); /** * Set the program version to `str`. * * This method auto-registers the "-V, --version" flag * which will print the version number when passed. * * You can optionally supply the flags and description to override the defaults. * */ version(str: string, flags?: string, description?: string): Command; /** * Define a command, implemented using an action handler. * * @remarks * The command description is supplied using `.description`, not as a parameter to `.command`. * * @example * ```ts * program * .command('clone <source> [destination]') * .description('clone a repository into a newly created directory') * .action((source, destination) => { * console.log('clone command called'); * }); * ``` * * @param nameAndArgs - command name and arguments, args are `<required>` or `[optional]` and last may also be `variadic...` * @param opts - configuration options * @returns new command */ command(nameAndArgs: string, opts?: commander.CommandOptions): Command; /** * Define a command, implemented in a separate executable file. * * @remarks * The command description is supplied as the second parameter to `.command`. * * @example * ```ts * program * .command('start <service>', 'start named service') * .command('stop [service]', 'stop named serice, or all if no name supplied'); * ``` * * @param nameAndArgs - command name and arguments, args are `<required>` or `[optional]` and last may also be `variadic...` * @param description - description of executable command * @param opts - configuration options * @returns top level command for chaining more command definitions */ command(nameAndArgs: string, description: string, opts?: commander.CommandOptions): Command; /** * Define argument syntax for the top-level command. * * @param {string} desc * @returns {Command} for chaining */ arguments(desc: string): Command; /** * Parse expected `args`. * * For example `["[type]"]` becomes `[{ required: false, name: 'type' }]`. * * @param {string[]} args * @returns {Command} for chaining */ parseExpectedArgs(args: string[]): Command; /** * Register callback `fn` for the command. * * @example * program * .command('help') * .description('display verbose help') * .action(function() { * // output help here * }); * * @param {(...args: any[]) => void} fn * @returns {Command} for chaining */ action(fn: (...args: any[]) => void): Command; /** * Define option with `flags`, `description` and optional * coercion `fn`. * * The `flags` string should contain both the short and long flags, * separated by comma, a pipe or space. The following are all valid * all will output this way when `--help` is used. * * "-p, --pepper" * "-p|--pepper" * "-p --pepper" * * @example * // simple boolean defaulting to false * program.option('-p, --pepper', 'add pepper'); * * --pepper * program.pepper * // => Boolean * * // simple boolean defaulting to true * program.option('-C, --no-cheese', 'remove cheese'); * * program.cheese * // => true * * --no-cheese * program.cheese * // => false * * // required argument * program.option('-C, --chdir <path>', 'change the working directory'); * * --chdir /tmp * program.chdir * // => "/tmp" * * // optional argument * program.option('-c, --cheese [type]', 'add cheese [marble]'); * * @param {string} flags * @param {string} [description] * @param {((arg1: any, arg2: any) => void) | RegExp} [fn] function or default * @param {*} [defaultValue] * @returns {Command} for chaining */ option(flags: string, description?: string, fn?: ((arg1: any, arg2: any) => void) | RegExp, defaultValue?: any): Command; option(flags: string, description?: string, defaultValue?: any): Command; /** * Allow unknown options on the command line. * * @param {boolean} [arg] if `true` or omitted, no error will be thrown for unknown options. * @returns {Command} for chaining */ allowUnknownOption(arg?: boolean): Command; /** * Parse `argv`, settings options and invoking commands when defined. * * @param {string[]} argv * @returns {Command} for chaining */ parse(argv: string[]): Command; /** * Parse options from `argv` returning `argv` void of these options. * * @param {string[]} argv * @returns {ParseOptionsResult} */ parseOptions(argv: string[]): commander.ParseOptionsResult; /** * Return an object containing options as key-value pairs * * @returns {{[key: string]: any}} */ opts(): { [key: string]: any }; /** * Set the description to `str`. * * @param {string} str * @param {{[argName: string]: string}} argsDescription * @return {(Command | string)} */ description(str: string, argsDescription?: {[argName: string]: string}): Command; description(): string; /** * Set an alias for the command. * * @param {string} alias * @return {(Command | string)} */ alias(alias: string): Command; alias(): string; /** * Set or get the command usage. * * @param {string} str * @return {(Command | string)} */ usage(str: string): Command; usage(): string; /** * Set the name of the command. * * @param {string} str * @return {Command} */ name(str: string): Command; /** * Get the name of the command. * * @return {string} */ name(): string; /** * Output help information for this command. * * When listener(s) are available for the helpLongFlag * those callbacks are invoked. * * @param {(str: string) => string} [cb] */ outputHelp(cb?: (str: string) => string): void; /** * You can pass in flags and a description to override the help * flags and help description for your command. */ helpOption(flags?: string, description?: string): Command; /** * Output help information and exit. */ help(cb?: (str: string) => string): never; } } declare namespace commander { type Command = local.Command type Option = local.Option interface CommandOptions { noHelp?: boolean; isDefault?: boolean; } interface ParseOptionsResult { args: string[]; unknown: string[]; } interface CommanderStatic extends Command { Command: typeof local.Command; Option: typeof local.Option; CommandOptions: CommandOptions; ParseOptionsResult: ParseOptionsResult; } } declare const commander: commander.CommanderStatic; export = commander; ``` 我们在调用这个库的时候是这么调用的 ```typescript import commander = require('commander'); commander.version("1.1.0").option("-d --debug","example"); ``` 为什么?导出的是一个接口,为什么能调用这些函数????具体的查看nodejs的commander包总的声明文件

final修饰的终态变量只能在声明变量时或构造函数里赋值嘛?

class GongChengShi { final String name;//名字 final String dizhi;//地址 int age;//年龄 public GongChengShi(String name, int age) { this.name = name;//构造函数初始化时给名字和年龄赋值 this.age = age; } void setDizhi(String dizhi){//在子类中调用这里给地址赋值 this.dizhi = dizhi; } } 输出结果 ---------- javac ---------- Hello.java:36: 错误: 无法为最终变量dizhi分配值 this.dizhi = dizhi; ^ 1 个错误 我dizhi在声明变量时直接赋值可以,在构造函数里赋值也可以,但是放到普通方法里赋值就不行了。 final修饰的变量只能在声明变量时赋值或者在构造函数里赋值嘛?

java中子类调用父类构造函数中定义的变量

package jm; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class dl extends JFrame implements ActionListener{ GridBagLayout gridbag=new GridBagLayout(); public dl(){ super("登陆界面"); setSize(500,500); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // setLookAndFell(); setLayout(gridbag); JLabel yhm=new JLabel("用户名:"); JTextField yyhm=new JTextField(20); JLabel mmm=new JLabel("密码:"); JPasswordField mm=new JPasswordField(20); mm.setEchoChar('#'); JButton tj=new JButton("登陆"); addComponent(yhm,0,0,10,20,1,1,GridBagConstraints.NONE,GridBagConstraints.EAST); addComponent(yyhm,1,0,10,20,1,4,GridBagConstraints.NONE,GridBagConstraints.WEST); addComponent(mmm,0,1,10,20,1,1,GridBagConstraints.NONE,GridBagConstraints.EAST); addComponent(mm,1,1,10,20,1,1,GridBagConstraints.NONE,GridBagConstraints.WEST); addComponent(tj,1,40,10,20,1,1,GridBagConstraints.NONE,GridBagConstraints.WEST); pack(); setVisible(true); } public void addComponent(Component component,int gridx,int gridy,int ipadx,int ipady,int weightx,int weighty,int fill,int anchor){ GridBagConstraints constraint=new GridBagConstraints(); constraint.gridx=gridx; constraint.gridy=gridy; constraint.ipadx=ipadx; constraint.ipady=ipady; constraint.weightx=weightx; constraint.fill=fill; constraint.anchor=anchor; gridbag.setConstraints(component,constraint); add(component); } public void actionPerformed(ActionEvent event){ } public static void main(String[] arg){ dl dld=new dl(); } } ``` 父类的构造函数中定义了一个按钮tj,用来作为登录按钮,没有定义行为,准备在子类中定义 ``` package jm; import java.awt.event.*; import java.awt.*; import javax.swing.*; public class sczj extends dl{ public sczj(){ } public void actionPerformed(ActionEvent event){ Object source=event.getSource(); if(source==super.tj){ System.out.println("其实你没有错"); //准备在这里定义tj按钮的行为,但是NETBEANS提示找不到符号tj,动行的时候也没有效果 } } public static void main(String[] arg){ new sczj(); } }

请教一个静态函数的问题

A.c文件中定义了函数fun1,A.h中声明了这个函数,在B.c文件中定义了同名static静态函数,并且B文件中include了A.h,此时编译B文件是报错还是正常?

方法内部类 的 方法 为什么不能定义成static 静态的方法?

如题 方法内部类 的 方法 为什么不能定义成static 静态的方法?

MFC中回调函数怎么定义

我找了一个关于MFC表头排序的代码,想运用到自己的程序中,但是在运行时不知道这个static int CALLBACK CompareFunc怎么定义,下面也报错这个东西

做一道题,遇到一些疑问。public static int[] 函数 ;

取出整型数据中出现次数最多的元素,并按照升序排列返回。 要求实现方法: public static int[] calcTimes(int[] num, int len); 【输入】 num:整型数组; len 输入的整数个数 【返回】 按照升序排列返回整型数组中出现次数最多的元素 【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出 示例 输入:num = {1,1,3,4,4,4,9,9,9,10} len = 10 返回:{4,9} 这是我用 c++编写的代码 #include<iostream> #include<algorithm> using namespace std; /* 在数组arr_num中查找 num,如果有,将对应的arr_count 加1,如果没有,在arr_num中添加, 设置arr_count 设置为1,并且相应的计数器加1; */ void find (int & num_,int *arr_num,int *arr_count,int &count) { for(int j =0 ;j <count ;j++) if(arr_num[j] == num_) arr_count[j]++; arr_num[count] = num_; arr_count[count]= 1; count++; } int *calcTimes (int* num ,int len) { if (len == 0) return 0; int count = 0,dex =0 ; //创建两个数字,一个用来存放数字,一个用来存放该数字出现的次数 int *arr_count = new int[len]; int *arr_num = new int [len]; for(dex =0 ;dex <len ;dex++) find (num[dex],arr_num,arr_count,count); int max = -1; int numb ; //arr_cout出现的最大值,该最大值出现的次数。 for(dex = 0 ;dex < count ;dex++) if(max < arr_count[dex]) { max = arr_count[dex]; numb =1; } else if(max == arr_count[dex] ) numb++; int *out_out = new int [numb]; int i = 0; //将出现次数最多的赋值给另外一个数组。 for(dex = 0 ;dex < count ;dex++) if (arr_count[dex] == max) { out_out[i] = arr_num[dex]; i++; } delete [] arr_count; delete [] arr_num; //对出现次数最多的数字进行排序 sort(out_out,out_out+numb); //自己检验下 for(int jj =0 ;jj<numb;jj++) cout<<out_out[jj]<<" "<<jj<<endl; return out_out; } int main() { int num[] = {1,1,3,4,4,4,9,9,9,10}, len = 10; int * out = calcTimes(num,len); //这边该如何 sizeof (out) 是一个指针的长度,它不能用来判断数组的个数 int n = sizeof(out)/sizeof(int); for(int i =0 ;i<n ;i++) cout<<out[i]<<ends; cout<<endl; } 最后输出的时候,出现问题,不知道是最后sizeof(out)/size(int)出错,还是没有按照要求pbulic static int [] calcTimes()写,我对这个public static 不太了解 还是这本来就是java中的,不是C++的?

C/C++学习指南全套教程

C/C++学习的全套教程,从基本语法,基本原理,到界面开发、网络开发、Linux开发、安全算法,应用尽用。由毕业于清华大学的业内人士执课,为C/C++编程爱好者的教程。

定量遥感中文版 梁顺林著 范闻捷译

这是梁顺林的定量遥感的中文版,由范闻捷等翻译的,是电子版PDF,解决了大家看英文费时费事的问题,希望大家下载看看,一定会有帮助的

YOLOv3目标检测实战:训练自己的数据集

YOLOv3是一种基于深度学习的端到端实时目标检测方法,以速度快见长。本课程将手把手地教大家使用labelImg标注和使用YOLOv3训练自己的数据集。课程分为三个小项目:足球目标检测(单目标检测)、梅西目标检测(单目标检测)、足球和梅西同时目标检测(两目标检测)。 本课程的YOLOv3使用Darknet,在Ubuntu系统上做项目演示。包括:安装Darknet、给自己的数据集打标签、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计(mAP计算和画出PR曲线)和先验框聚类。 Darknet是使用C语言实现的轻型开源深度学习框架,依赖少,可移植性好,值得深入探究。 除本课程《YOLOv3目标检测实战:训练自己的数据集》外,本人推出了有关YOLOv3目标检测的系列课程,请持续关注该系列的其它课程视频,包括: 《YOLOv3目标检测实战:交通标志识别》 《YOLOv3目标检测:原理与源码解析》 《YOLOv3目标检测:网络模型改进方法》 敬请关注并选择学习!

sql语句 异常 Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your

在我们开发的工程中,有时候会报 [Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ------ 这种异常 不用多想,肯定是我们的sql语句出现问题,下面...

浪潮集团 往年的软件类 笔试题 比较详细的哦

浪潮集团 往年的软件类 笔试题 比较详细的哦

2019 AI开发者大会

2019 AI开发者大会(AI ProCon 2019)是由中国IT社区CSDN主办的AI技术与产业年度盛会。多年经验淬炼,如今蓄势待发:2019年9月6-7日,大会将有近百位中美顶尖AI专家、知名企业代表以及千余名AI开发者齐聚北京,进行技术解读和产业论证。我们不空谈口号,只谈技术,诚挚邀请AI业内人士一起共铸人工智能新篇章!

I2c串口通信实现加速度传感器和FPGA的交流

此代码能实现加速度传感器与FPGA之间的交流,从而测出运动物体的加速度。

Python可以这样学(第一季:Python内功修炼)

董付国系列教材《Python程序设计基础》、《Python程序设计(第2版)》、《Python可以这样学》配套视频,讲解Python 3.5.x和3.6.x语法、内置对象用法、选择与循环以及函数设计与使用、lambda表达式用法、字符串与正则表达式应用、面向对象编程、文本文件与二进制文件操作、目录操作与系统运维、异常处理结构。

微信公众平台开发入门

本套课程的设计完全是为初学者量身打造,课程内容由浅入深,课程讲解通俗易懂,代码实现简洁清晰。通过本课程的学习,学员能够入门微信公众平台开发,能够胜任企业级的订阅号、服务号、企业号的应用开发工作。 通过本课程的学习,学员能够对微信公众平台有一个清晰的、系统性的认识。例如,公众号是什么,它有什么特点,它能做什么,怎么开发公众号。 其次,通过本课程的学习,学员能够掌握微信公众平台开发的方法、技术和应用实现。例如,开发者文档怎么看,开发环境怎么搭建,基本的消息交互如何实现,常用的方法技巧有哪些,真实应用怎么开发。

机器学习初学者必会的案例精讲

通过六个实际的编码项目,带领同学入门人工智能。这些项目涉及机器学习(回归,分类,聚类),深度学习(神经网络),底层数学算法,Weka数据挖掘,利用Git开源项目实战等。

eclipseme 1.7.9

eclipse 出了新的eclipseme插件,官方有下载,但特慢,我都下了大半天(可能自己网速差)。有急需要的朋友可以下哦。。。

Spring Boot -01- 快速入门篇(图文教程)

Spring Boot -01- 快速入门篇 今天开始不断整理 Spring Boot 2.0 版本学习笔记,大家可以在博客看到我的笔记,然后大家想看视频课程也可以到【慕课网】手机 app,去找【Spring Boot 2.0 深度实践】的课程,令人开心的是,课程完全免费! 什么是 Spring Boot? Spring Boot 是由 Pivotal 团队提供的全新框架。Spring Boot...

HoloLens2开发入门教程

本课程为HoloLens2开发入门教程,讲解部署开发环境,安装VS2019,Unity版本,Windows SDK,创建Unity项目,讲解如何使用MRTK,编辑器模拟手势交互,打包VS工程并编译部署应用到HoloLens上等。

最简单的倍频verilog程序(Quartus II)

一个工程文件 几段简单的代码 一个输入一个输出(50Mhz倍频到100Mhz)

计算机组成原理实验教程

西北工业大学计算机组成原理实验课唐都仪器实验帮助,同实验指导书。分为运算器,存储器,控制器,模型计算机,输入输出系统5个章节

4小时玩转微信小程序——基础入门与微信支付实战

这是一个门针对零基础学员学习微信小程序开发的视频教学课程。课程采用腾讯官方文档作为教程的唯一技术资料来源。杜绝网络上质量良莠不齐的资料给学员学习带来的障碍。 视频课程按照开发工具的下载、安装、使用、程序结构、视图层、逻辑层、微信小程序等几个部分组织课程,详细讲解整个小程序的开发过程

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

基于RSA通信密钥分发的加密通信

基于RSA通信密钥分发的加密通信,采用pycrypto中的RSA、AES模块实现

不同变质程度煤尘爆炸残留气体特征研究

为分析不同变质程度煤尘爆炸残留气体成分的特征规律,利用水平管道煤尘爆炸实验装置进行了贫瘦煤、肥煤、气煤、长焰煤4种不同变质程度的煤尘爆炸实验,研究了不同变质程度煤尘爆炸后气体残留物含量的差异,并对气体

设计模式(JAVA语言实现)--20种设计模式附带源码

课程亮点: 课程培训详细的笔记以及实例代码,让学员开始掌握设计模式知识点 课程内容: 工厂模式、桥接模式、组合模式、装饰器模式、外观模式、享元模式、原型模型、代理模式、单例模式、适配器模式 策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式 课程特色: 笔记设计模式,用笔记串连所有知识点,让学员从一点一滴积累,学习过程无压力 笔记标题采用关键字标识法,帮助学员更加容易记住知识点 笔记以超链接形式让知识点关联起来,形式知识体系 采用先概念后实例再应用方式,知识点深入浅出 提供授课内容笔记作为课后复习以及工作备查工具 部分图表(电脑PC端查看):

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

软件测试2小时入门

本课程内容系统、全面、简洁、通俗易懂,通过2个多小时的介绍,让大家对软件测试有个系统的理解和认识,具备基本的软件测试理论基础。 主要内容分为5个部分: 1 软件测试概述,了解测试是什么、测试的对象、原则、流程、方法、模型;&nbsp; 2.常用的黑盒测试用例设计方法及示例演示;&nbsp; 3 常用白盒测试用例设计方法及示例演示;&nbsp; 4.自动化测试优缺点、使用范围及示例‘;&nbsp; 5.测试经验谈。

几率大的Redis面试题(含答案)

本文的面试题如下: Redis 持久化机制 缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题 热点数据和冷数据是什么 Memcache与Redis的区别都有哪些? 单线程的redis为什么这么快 redis的数据类型,以及每种数据类型的使用场景,Redis 内部结构 redis的过期策略以及内存淘汰机制【~】 Redis 为什么是单线程的,优点 如何解决redis的并发竞争key问题 Red...

手把手实现Java图书管理系统(附源码)

【超实用课程内容】 本课程演示的是一套基于Java的SSM框架实现的图书管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的java人群。详细介绍了图书管理系统的实现,包括:环境搭建、系统业务、技术实现、项目运行、功能演示、系统扩展等,以通俗易懂的方式,手把手的带你从零开始运行本套图书管理系统,该项目附带全部源码可作为毕设使用。 【课程如何观看?】 PC端:https://edu.csdn.net/course/detail/27513 移动端:CSDN 学院APP(注意不是CSDN APP哦) 本课程为录播课,课程2年有效观看时长,大家可以抓紧时间学习后一起讨论哦~ 【学员专享增值服务】 源码开放 课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化

jsp+servlet入门项目实例

jsp+servlet实现班级信息管理项目

winfrom中嵌套html,跟html的交互

winfrom中嵌套html,跟html的交互,源码就在里面一看就懂,很简单

Java面试题大全(2020版)

发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~ 本套Java面试题大全,全的不能再全,哈哈~ 一、Java 基础 1. JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境。 JRE:Java Runtime Environ...

python实现数字水印添加与提取及鲁棒性测试(GUI,基于DCT,含测试图片)

由python写的GUI,可以实现数字水印的添加与提取,提取是根据添加系数的相关性,实现了盲提取。含有两种攻击测试方法(高斯低通滤波、高斯白噪声)。基于python2.7,watermark.py为主

Xshell6完美破解版,亲测可用

Xshell6破解版,亲测可用,分享给大家。直接解压即可使用

你连存活到JDK8中著名的Bug都不知道,我怎么敢给你加薪

CopyOnWriteArrayList.java和ArrayList.java,这2个类的构造函数,注释中有一句话 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 public ArrayList(Collection&lt;? ...

相关热词 c#分级显示数据 c# 不区分大小写替换 c#中调用就java c#正则表达式 验证小数 c# vscode 配置 c#三维数组能存多少数据 c# 新建excel c#多个文本框 c#怎么创建tcp通讯 c# mvc 电子病例
立即提问